求一个替换AU3脚本中所有某个变量的正则
本帖最后由 itsky2 于 2020-2-26 22:46 编辑匹配变量没有什么问题,但是替换就想不通了。比如$i和$iStart,StringReplace()就会出现错误。新手不懂正则,希望各位帮个忙,谢谢! 说过不会正则的办法:替换的话,也就这几个可能 吧
$i空格 $i& $i+ $i- $i= $i* $i/ $i" $i' $i) $i]
没想到的,楼下接着...
:face (1): 向各位同学求助一个关于提取au3脚本变量的问题.(已解决)
http://www.autoitx.com/forum.php?mod=viewthread&tid=52001&fromuid=7638255
(出处: AUTOIT CN)
换个思路吧,既然变量都匹配了,替换短的变量会把长的给替换了,那就从长的变量开始替换吧。
比如先替换$iStart,再替换$i,不就OK了吗。 建议不要用StringReplace()替换,用正则,效率高很多。 862228699 发表于 2020-2-27 10:21
换个思路吧,既然变量都匹配了,替换短的变量会把长的给替换了,那就从长的变量开始替换吧。
比如先替换$i ...
这只是个简单的例子,实际上还包含很多复杂的情况(万一会有$iStart和$iStend呢)
想要实现的效果是:替换脚本中的所有某个变量,同时不影响其他任何的字符 绿色风 发表于 2020-2-26 23:55
说过不会正则的办法:替换的话,也就这几个可能 吧
$i空格 $i& $i+ $i- $i= $i* $i/ $i" $i' $i) $i] ...
这个只是匹配的方法吧,,, itsky2 发表于 2020-2-27 13:50
这只是个简单的例子,实际上还包含很多复杂的情况(万一会有$iStart和$iStend呢)
想要实现的效果是:替 ...
$iStart和$iStend 是一样吗? ### 友情提示:本脚本由 Au3.REHelper 于 2020/02/27 16:45 自动生成,不保证其正确性,请自行测试 ###
Local $sSource = _
'$iStart' & @CRLF & _
'$iStend' & @CRLF & _
'$i=3,$iS=5,$i++' & @CRLF & _
'$i $i& $i+ $i- $i= $i* $i/ $i" $i' & "' $i) $i] " & @CRLF & _
'$iu'
;~MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '\$i\b', '\$Z')
MsgBox(0, '替换结果', $sSRERe)
862228699 发表于 2020-2-27 16:45
谢谢,看起来简单又实用!我试试写一个代码混淆:face (1): itsky2 发表于 2020-2-27 22:28
谢谢,看起来简单又实用!我试试写一个代码混淆
呵呵,加油。 跟着学习一下。
页:
[1]