找回密码
 加入
搜索
查看: 3346|回复: 9

[AU3基础] 求个正则表达式(判断路径是否有变量)-已解决

  [复制链接]
发表于 2015-9-29 12:37:28 | 显示全部楼层 |阅读模式
本帖最后由 wjscxs 于 2015-9-29 16:23 编辑

比如路径:%USERPROFILE%\AppData\Local\Temp

这里含有系统宏变量:%USERPROFILE%

我这里就要把 %USERPROFILE% 区配出来,换成真实的名字,比如%USERPROFILE% = c:\windows\system32

区配后,真实路径为:c:\windows\system32\AppData\Local\Temp

还有可能路径不至一个宏,如路径D:\%USERPROFILE%\AppData\%systemuser%\Local\Temp

还有一种情况是 路径不合法 含有单数的% 号 都不合法!,不合法的路径就不处理!
xxx%xxx%XX%XX%% 4个%号
XXX%XXX%xxx%       3个%号,不合法路径

出来吧,高手!
发表于 2015-9-29 12:43:05 | 显示全部楼层
你这个为何不直接用StringReplace?
 楼主| 发表于 2015-9-29 12:48:27 | 显示全部楼层
dump first
发表于 2015-9-29 13:31:23 | 显示全部楼层
本帖最后由 eaglelin 于 2015-9-29 13:38 编辑

/%S+/%

大概就是这样
 楼主| 发表于 2015-9-29 13:37:22 | 显示全部楼层
回复 4# eaglelin

* 同等于{0,}

建议把基础知识学好.还是感谢您的回复
 楼主| 发表于 2015-9-29 13:49:35 | 显示全部楼层
回复 4# eaglelin

/%S+/%

首先第一个 /% 是本意字符  
然后是S,字符
然后是+,相当于{1,}    意思是一次以上,即 S,SS,SSS,SSSS .....
然后结尾是 /% 本意字符

您的代码是

/%S/%
/%SS/%
/%SSS/%
................
..................
...................

N个S


再次感谢您,,您请去做其他事情吧,小弟另找别人。
发表于 2015-9-29 13:59:44 | 显示全部楼层
(?<=^|\\)%\w+%(?=\\|$)
发表于 2015-9-29 14:05:56 | 显示全部楼层
给你个我的想法吧~~先用IsInt(UBound(StringRegExp($str, '%', 3))/2)得出路径是否为合法,
建一个路径替换表,把%USERPROFILE% = c:\windows\system32 这些写到表里
然后用正则(%.+%)从合法路径里取出要替换的值,用for寻环把表里的值替换原值
发表于 2015-9-29 14:06:04 | 显示全部楼层
给你个我的想法吧~~先用IsInt(UBound(StringRegExp($str, '%', 3))/2)得出路径是否为合法,
建一个路径替换表,把%USERPROFILE% = c:\windows\system32 这些写到表里
然后用正则(%.+%)从合法路径里取出要替换的值,用for寻环把表里的值替换原值
 楼主| 发表于 2015-9-29 16:21:52 | 显示全部楼层

RE: 求个正则表达式(判断路径是否有变量)

回复 7# afan

感谢,问题解决!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 22:25 , Processed in 0.078373 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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