xg911335 发表于 2009-7-20 14:07:21

如何提取这样的字符串

本帖最后由 xg911335 于 2009-7-21 12:37 编辑

2009-07-20 11:35:30 604093 INFOtest OpenUserV5 sky:94861806897405121281, UserID:54173(54173 ), 登陆的帐号:54173, 密码:11111, 类型:1(1), 类型:1
2009-07-20 11:35:30 604093 INFOtest OpenUserV5 sky:94861806897405121281, UserID:54321(54321 ), 登陆的帐号:54321, 密码:333333, 类型:1(1), 类型:1
2009-07-20 11:35:30 604093 INFOtest OpenUserV5 sky:94861806897405121281, UserID:54173(54173 ), 登陆的帐号:54173, 密码:11111, 类型:1(1), 类型:1
2009-07-20 11:35:30 604093 INFOtest OpenUserV5 sky:94861806897405121281, UserID:54173(54173 ), 登陆的帐号:54173, 密码:11111, 类型:1(1), 类型:1
2009-07-20 11:35:30 604093 INFOtest OpenUserV5 sky:94861806897405121281, UserID:55555(55555 ), 登陆的帐号:55555, 密码:2222222, 类型:1(1), 类型:1

请问上面的文本中,如果读取密码啊?文本中有重复的帐号。
用$Input1来接收输入的帐号,$Button1来获取密码并把值赋给MSGBOX()。
给个列子。在下先谢过。

lynfr8 发表于 2009-7-20 17:49:27

本帖最后由 lynfr8 于 2009-7-21 18:55 编辑

后面几位兄台已经给出非常完善的解决方法了

xg911335 发表于 2009-7-20 17:54:31

我晕。。。

afan 发表于 2009-7-20 18:00:28

呵呵,改了……

My2009 发表于 2009-7-20 18:02:05

:face (35):晕,不知要提取哪些内容!

lynfr8 发表于 2009-7-20 18:59:39



#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form = GUICreate("正则提取密码 By lynfr8", 259, 76, 192, 124)
$Input = GUICtrlCreateInput("54173", 24, 24, 137, 21)
$Button = GUICtrlCreateButton("密码", 176, 24, 57, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

$user = StringRegExp(FileRead('user.txt'),'登陆的帐号:(\d+), 密码:(\d+)',3)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button
$userExists = ''
For $i= 0 to UBound($user) - 1 Step 2
If $user[$i]=GUICtrlRead($Input) And $userExists <> $user[$i+1] Then
MsgBox('','',$user[$i+1])
$userExists = $user[$i+1]
EndIf
Next
EndSwitch
WEnd

yinle 发表于 2009-7-21 00:19:47

lynfr8太强大了啊 好像无所不会 佩服一下

lynfr8 发表于 2009-7-21 02:11:36

嘘。。。别那么张扬
悄悄站内短信告诉我让我自己对着屏幕臭美一下就好了
别大庭广众的让大家看见嘛
让ACN真正的牛人看见了我就糗啦

lynfr8 发表于 2009-7-21 02:11:51

本帖最后由 lynfr8 于 2009-7-21 02:30 编辑

正则这个东西入门还是不难的
关键是要灵活运用
论坛正则的资料也有
相关的贴也不少
狠下心来逼自己认真琢磨一下
一定会有砍获的!

xg911335 发表于 2009-7-21 11:10:02

非常感谢lynfr8兄。我就是没有找到什么正则的资料。顺便问一下,登陆的帐号:(\d+), 密码:(\d+)里面的(\d+)是什么意思?

yinle 发表于 2009-7-21 11:13:29

:face (30):还有更牛的 .....      那我不活了

xg911335 发表于 2009-7-21 11:20:40

呵呵。。。这个我测试了一下。如果密码是字符串的无法提取。如密码:sdf123 密码:www.zutoit.net.cn
都不能提取

afan 发表于 2009-7-21 11:32:02

12# xg911335


一楼的全都是数字, \d+ 可以了。 密码的规律变了当然正则也要变啦~

afan 发表于 2009-7-21 11:39:13

将6#的
$user = StringRegExp(FileRead('user.txt'), '登陆的帐号:(\d+), 密码:(\d+)', 3)
改成如下就可以吧~
$user = StringRegExp(FileRead('user.txt'), '登陆的帐号:(\d+), 密码:(\w+)', 3)

xg911335 发表于 2009-7-21 11:44:14

本帖最后由 xg911335 于 2009-7-21 11:49 编辑

晕。。刚刚找到怎么搞,就被你抢先了。呵呵。谢谢。这个加号是什么意思?
另外匹配密码:www.autoitx.com的结果显示是www.不能完全显示?
页: [1] 2
查看完整版本: 如何提取这样的字符串