找回密码
 加入
搜索
查看: 1613|回复: 2

[AU3基础] 已解决 请教正则表达式

[复制链接]
发表于 2012-4-2 02:02:41 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2012-4-2 08:55 编辑


Local $Str = _
                'C:\Users\Administrator\AppData\Roaming\Trine2\options.txt' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\TTPlayer\cache' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\VMware\inventory.rmvb' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\VMware\preferences.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\auth.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\demo.mp3' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\demo.m' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\demo.p' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\demo.3' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\gen_jumpex.m3u8' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\links.xml' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\links.x' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\links.m' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\links.l' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\studio.xnf' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\winamp.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Winamp.m3u' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\winamp.m3u8' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Winamp.rmvb' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\gen_ml.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\gen_mud.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\milk2_img.ini' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\milk2_msg.mkv' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\ml' & @CRLF & _
                'C:\Users\Administrator\AppData\Roaming\Winamp\Plugins\omBrowser'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(?mi)^.+?(?:(?!\.rmvb|\.mkv).){4}(?:\r\n|\z)', '')
MsgBox(0, '替换结果', $Test)
Exit

1.为何那个RMVB文件无法匹配出来?
2. 把正则行改为
Local $Test = StringRegExpReplace($str, '(?mi)^.+?(?:(?!\.m|\.mkv).){4}(?:\r\n|\z)', '')
时,怎样才可以仅匹配M或Mkv结尾的文件而不是连MP3也匹配出来?

评分

参与人数 1金钱 +1 收起 理由
afan + 1

查看全部评分

 楼主| 发表于 2012-4-2 02:05:59 | 显示全部楼层
谁能解释下这里面的正则是什么意思吗,看不懂
发表于 2012-4-2 02:30:30 | 显示全部楼层
本帖最后由 半芯竹 于 2012-4-2 02:46 编辑

Local $Test = StringRegExpReplace($str, '(?mi)^.+?(?:(?!\.rmvb|\.mkv).){5}(?:\r\n|\z)', '')




解:{4}   
.mkv =4
.rmvb =5
所以只显示.MKV后缀


例:仅匹配.mkv后缀
Local $Test = StringRegExpReplace($str, '(?mi)^.+?(?:(?!\.mkv).){4}(?:\r\n|\z)', '')

例:仅匹配所有带.m后缀
Local $Test = StringRegExpReplace($str, '(?mi)^.+?(?:(?!\.m).){5}(?:\r\n|\z)', '')

{4}可理解为匹配的长度。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 09:25 , Processed in 0.098970 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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