求个正则表达式(判断路径是否有变量)-已解决
本帖最后由 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个%号,不合法路径
出来吧,高手! 你这个为何不直接用StringReplace? dump first 本帖最后由 eaglelin 于 2015-9-29 13:38 编辑
/%S+/%
大概就是这样 回复 4# eaglelin
* 同等于{0,}
建议把基础知识学好.还是感谢您的回复 回复 4# eaglelin
/%S+/%
首先第一个 /% 是本意字符
然后是S,字符
然后是+,相当于{1,} 意思是一次以上,即 S,SS,SSS,SSSS .....
然后结尾是 /% 本意字符
您的代码是
/%S/%
/%SS/%
/%SSS/%
................
..................
...................
N个S
再次感谢您,,您请去做其他事情吧,小弟另找别人。 (?<=^|\\)%\w+%(?=\\|$) 给你个我的想法吧~~先用IsInt(UBound(StringRegExp($str, '%', 3))/2)得出路径是否为合法,
建一个路径替换表,把%USERPROFILE% = c:\windows\system32 这些写到表里
然后用正则(%.+%)从合法路径里取出要替换的值,用for寻环把表里的值替换原值 给你个我的想法吧~~先用IsInt(UBound(StringRegExp($str, '%', 3))/2)得出路径是否为合法,
建一个路径替换表,把%USERPROFILE% = c:\windows\system32 这些写到表里
然后用正则(%.+%)从合法路径里取出要替换的值,用for寻环把表里的值替换原值
RE: 求个正则表达式(判断路径是否有变量)
回复 7# afan感谢,问题解决!
页:
[1]