找回密码
 加入
搜索
查看: 2850|回复: 8

[AU3基础] 求正则表达式去INI指定关键词的值,非IniRead[已解决]

  [复制链接]
发表于 2012-1-8 07:57:16 | 显示全部楼层 |阅读模式
本帖最后由 qq724174 于 2012-1-8 15:11 编辑

求正则表达式取INI某个关键字的值
INI内容如下:
[ConfigMgr.dll]
pathfrmbin=ConfigMgr.dll
md5=2EACDD6F552278CADAE348A2EA669114
filedate=2012-01-06 15:58:17
forcedpath=

[P2PConfig.xml]
pathfrmbin=DNAService\P2PConfig.xml
md5=
filedate=2012-01-05 23:49:53
forcedpath=

[p2pserver.exe]
pathfrmbin=DNAService\p2pserver.exe
md5=7EF34F5747C3897D37DF0F2E9276435C
filedate=2011-08-09 09:50:41
forcedpath=

[SoftUpdate.exe]
pathfrmbin=DNAService\SoftUpdate.exe
md5=B20E7C54FBCED5F5EFD9ABF0C262896D
filedate=2012-01-06 18:34:53
forcedpath=
需要取出[P2PConfig.xml]下的filedate的值,
功能和
IniRead($sFile,'P2PConfig.xml','filedate','')
一样,但是数据是保存在变量当中的 无法用IniRead获取,请问各位用什么正则可以直接取出吗?
发表于 2012-1-8 08:13:52 | 显示全部楼层
求正则表达式取INI某个关键字的值
INI内容如下:需要取出下的filedate的值,
功能和一样,但是数据是保存 ...
qq724174 发表于 2012-1-8 07:57


如果有心学点正则请参考此帖: http://www.autoitx.com/thread-29424-1-1.html

 #include <array.au3>
$txt = FileRead('d:\file.au3')
$str = StringRegExp($txt, '(?<=^|[\r\n])(?:\[P2PConfig\.xml\])(?s).+?filedate=([^\r\n]+).+', 3)
_ArrayDisplay($str)
 楼主| 发表于 2012-1-8 08:45:40 | 显示全部楼层
本帖最后由 qq724174 于 2012-1-8 08:47 编辑

回复 2# user3000


    搞定,谢谢了
\[P2PConfig.xml\](?s).+?filedate=([^\r\n]+)
发表于 2012-1-8 09:01:49 | 显示全部楼层
本帖最后由 Ycxw2008 于 2012-1-8 09:04 编辑

回答慢了,清除文字
发表于 2012-1-8 10:45:31 | 显示全部楼层
回复  user3000


    搞定,谢谢了
qq724174 发表于 2012-1-8 08:45



    搞定了就把帖子标题添加 [已解决] 这个三个字进去!
在标题前头或后尾加都可以!
发表于 2012-1-8 14:39:06 | 显示全部楼层
多谢楼主共享
发表于 2012-1-8 23:08:09 | 显示全部楼层
认真学习一下!
 楼主| 发表于 2012-1-12 17:53:39 | 显示全部楼层
回复 2# user3000
[ConfigMgr.dll]
pathfrmbin=ConfigMgr.dll
md5=2EACDD6F552278CADAE348A2EA669114
filedate=2012-01-06 15:58:17
forcedpath=

[P2PConfig.xml]
pathfrmbin=DNAService\P2PConfig.xml
md5=
filedate=2012-01-05 23:49:53
forcedpath=

[p2pserver.exe]
pathfrmbin=DNAService\p2pserver.exe
md5=
filedate=2011-08-09 09:50:41
forcedpath=

[SoftUpdate.exe]
pathfrmbin=DNAService\SoftUpdate.exe
md5=B20E7C54FBCED5F5EFD9ABF0C262896D
filedate=2012-01-06 18:34:53
forcedpath=
Func _IniRead($sText, $section, $Key, $Default)
        ;(?<=^|[\r\n])(?:\[SoftUpdate\.exe\])(?s).+?md5=([^\r\n]+).+
        ;\[P2PConfig.xml\](?s).+?filedate=([^\r\n]+)
        Local $iKey = StringRegExp($sText, '\[' & $section & '\](?s).+?' & $Key & '=([^\r\n]+)', 3)
        If @error Then Return $Default
        
        Return $iKey[0]
EndFunc   ;==>_IniRead
_IniRead($sFile_List, p2pserver.exe', 'md5', '')
这样读到的是[SoftUpdate.exe]里的md5,请帮我看看
发表于 2012-1-12 19:03:04 | 显示全部楼层
回复  user3000 这样读到的是[SoftUpdate.exe]里的md5,请帮我看看
qq724174 发表于 2012-1-12 17:53


Local $iKey = StringRegExp($sText, '\[' & $section & '\](?s).+?' & $Key & '=([^\r\n]+)filedate, 3)


这样就可以了... 把它限制在一个字段内!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 17:40 , Processed in 0.083248 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表