lsszmj 发表于 2012-1-17 13:10:17

请教:怎样用正则提取用户名密码有效期

怎样用正则提取用户名密码有效期,谢谢!
正则一直搞不好,还在摸索中,请大大们帮忙!
Username: EAV-42820632
Password: htcrp27sdt
Expiration: 12/01/2012


Username: EAV-42820633
Password: cb5fj3han8
Expiration: 12/01/2012


Username: EAV-51526916
Password: kpvr48kr5n
Expiration: 13/03/2017


Username: EAV-54883696
Password: mr67m6a7ha
Expiration: 30/12/2012


Username: EAV-54883700
Password: dac6akusad
Expiration: 30/12/2012


Username: EAV-54883706
Password: f2savthksv
Expiration: 31/12/2012

user3000 发表于 2012-1-17 13:30:48

本帖最后由 user3000 于 2012-1-17 13:36 编辑

比较工整的字段,数组里按顺序每第1个为用户,第2个为密码,第3个为有效日期:
#include<array.au3>
Local $txt = FileRead('d:\123.au3')
Local $all = StringRegExp($txt, '[::]\h*(.+)', 3)
_ArrayDisplay($all)

lsszmj 发表于 2012-1-17 13:31:57

回复 2# user3000
用户名、密码、有效期一次全部提取

user3000 发表于 2012-1-17 13:36:22

回复user3000
用户名、密码、有效期一次全部提取
lsszmj 发表于 2012-1-17 13:31 http://www.autoitx.com/images/common/back.gif

呵呵, 没仔细看,改了!

Ycxw2008 发表于 2012-1-17 13:41:05

我觉得 并不是一次提取 就是效率
for to next我觉得就不如分下来 省事

lsszmj 发表于 2012-1-17 13:46:02

回复 2# user3000
谢谢,这个正则表达式[::]\h*(.+),老大能否帮忙翻译成中文

Ycxw2008 发表于 2012-1-17 14:10:41

本帖最后由 Ycxw2008 于 2012-1-17 14:15 编辑

回复 6# lsszmj


    中文的正则需要你来发明

[:(?#2者均可):]\h(?#任何的水平空白字符.)(.+(?#捕获成组))
   不过你应该是这意思吧?
   可以无视绿色部分,也可以直接用在AFAN老大的工具上测试,据说可以放在脚本里的,不过我没试过

user3000 发表于 2012-1-17 14:14:42

回复user3000
谢谢,这个正则表达式[::]\h*(.+),老大能否帮忙翻译成中文
lsszmj 发表于 2012-1-17 13:46 http://www.autoitx.com/images/common/back.gif

我倒, 是解释这个表达式吧, 还翻译成中文...流汗了!
首先表达式确定是提取输出括号里的内容:
(.+); . 代表除了换行的任意字符, + 说明这类字符是一个或者很多个。
.+ 可以用来匹配任意非空的一行字,但在这里它前面有修饰:[::]\h* , 所以不是完整的一行字。
[::] 是因为担心英文和中文标点的混合,意指不是一个 : 符号就是一个 : 符号。
最后, 紧接的是空格符, * 个数不确定, 可为0或很多个。。。

以上内容, 熟读帮助文档应该都能理解的, 主要还是你不熟悉!

Ycxw2008 发表于 2012-1-17 14:16:24

回复 8# user3000

我也被吓一跳,以为我自己与世隔绝了{:face (340):}

user3000 发表于 2012-1-17 14:22:39

回复user3000

我也被吓一跳,以为我自己与世隔绝了
Ycxw2008 发表于 2012-1-17 14:16 http://www.autoitx.com/images/common/back.gif


    正则很强大的! 精深掌握的难度也大!
    但如果只是想入门粗浅的运用一下, 这倒不是问题。
    像我也就正儿八经地学了四五天吧, 像应付这些小问题,也还算上心!
    遇到有心学正则的人, 也算是惺惺相惜吧。

Ycxw2008 发表于 2012-1-17 14:27:45

回复 10# user3000


    对头,其实会与不会是其次,主要就是折腾的乐趣
    昨天不小心就折腾了我一夜,害的我早上看到字串都是双影{:face (198):}

lsszmj 发表于 2012-1-18 22:45:07

谢谢各位大大,小弟受益非浅

asdasdasd 发表于 2012-1-19 10:18:43

正则的命令和用法我一个记不住,呵呵,实在是没有这方面的强烈需求,可能等用的时候再说了!!
页: [1]
查看完整版本: 请教:怎样用正则提取用户名密码有效期