找回密码
 加入
搜索
查看: 2312|回复: 7

[效率算法] 【已解决】一个正则求助。。。。烧脑。。谢谢Afan

  [复制链接]
发表于 2018-4-1 18:56:37 | 显示全部楼层 |阅读模式
本帖最后由 862228699 于 2018-4-27 12:42 编辑
C:\新建文件夹\222222\sdfdf.exe
E:\sdfsdfdf\新建文件夹\222sd2\sd22df.exe

C:\Users\Administrator\Desktop\新建文件夹\360\11111.exe
C:\Users\Administrator\Desktop\新建文件夹\2345\er34.exe
C:\Users\Administrator\Desktop\新建文件夹\34567\dfdfg.bat

C:\Users\Administrator\Desktop\新建文件夹2\3600\1111441.exe
C:\Users\Administrator\Desktop\新建文件夹2\23450\er3334.exe
C:\Users\Administrator\Desktop\新建文件夹2\345670\dfd22fg.bat

C:\Users\Administrator\Desktop\新建文件夹3\3600\1111441.exe
C:\Users\Administrator\Desktop\新建文件夹3\23450\er3334.exe
C:\Users\Administrator\Desktop\新建文件夹3\345670\dfd22fg.bat

C:\Users\Administrator\Desktop\D3432323\新建文件夹3\345670\dfd22fg.bat

C:\Users\Administrator\Desktop\D3432323\DSFLKSJDF\新建文件夹3\345670\dfd22fg.bat
我想匹配  文件的倒数第二层目录路径。


意思从开始到“新建文件夹” 那层目录。而  这个  新建文件夹  这个名字也是随机的。不确定的名字。
发表于 2018-4-1 20:52:52 | 显示全部楼层
#include <Array.au3>
Local $sSource = _
                'C:\新建文件夹\222222\sdfdf.exe' & @CRLF & _
                'E:\sdfsdfdf\新建文件夹\222sd2\sd22df.exe' & @CRLF & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹\360\11111.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹\2345\er34.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹\34567\dfdfg.bat' & @CRLF & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹2\3600\1111441.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹2\23450\er3334.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹2\345670\dfd22fg.bat' & @CRLF & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹3\3600\1111441.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹3\23450\er3334.exe' & @CRLF & _
                'C:\Users\Administrator\Desktop\新建文件夹3\345670\dfd22fg.bat' & @CRLF & @CRLF & _
                'C:\Users\Administrator\Desktop\D3432323\新建文件夹3\345670\dfd22fg.bat' & @CRLF & @CRLF & _
                'C:\Users\Administrator\Desktop\D3432323\DSFLKSJDF\新建文件夹3\345670\dfd22fg.bat'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?mi)^\w:\V+(?=\\.+?\\[^\\]+$)', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
发表于 2018-4-2 10:28:57 | 显示全部楼层
A大正则出神入化

发表于 2018-4-2 10:37:19 | 显示全部楼层
本帖最后由 xzf680 于 2018-4-2 10:40 编辑

回复 2# afan


刚测试少复制了个 ) 没问题,厉害!
发表于 2018-4-2 11:31:40 | 显示全部楼层
回复  afan


刚测试少复制了个 ) 没问题,厉害!
xzf680 发表于 2018-4-2 10:37



    复制代码有时候是会出现掉符号的问题…
发表于 2018-4-2 12:01:31 | 显示全部楼层
学习了,原来(?m)(?i)还可以组合用的
发表于 2018-4-2 13:20:03 | 显示全部楼层
如果只是处理一个目录这个简单点
Local $sSource = 'C:\Users\Administrator\Desktop\新建文件夹\360\11111.exe'
$aSRE = StringLeft($sSource, StringInStr($sSource, "\", 0, -2) - 1)
MsgBox(0, "", $aSRE)
 楼主| 发表于 2018-4-27 12:41:25 | 显示全部楼层
回复 2# afan
感谢Afan正则之神,今天才看到。结贴吧。。。谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 16:41 , Processed in 0.076779 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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