找回密码
 加入
搜索
查看: 2504|回复: 11

[AU3基础] 求一个替换AU3脚本中所有某个变量的正则

[复制链接]
发表于 2020-2-26 22:09:03 | 显示全部楼层 |阅读模式
本帖最后由 itsky2 于 2020-2-26 22:46 编辑

匹配变量没有什么问题,但是替换就想不通了。比如$i和$iStart,StringReplace()就会出现错误。新手不懂正则,希望各位帮个忙,谢谢!
发表于 2020-2-26 23:55:35 | 显示全部楼层
说过不会正则的办法:  替换的话,也就这几个可能 吧

$i空格 $i& $i+ $i- $i= $i* $i/ $i" $i' $i) $i]   

没想到的,楼下接着...


发表于 2020-2-27 09:57:14 | 显示全部楼层
向各位同学求助一个关于提取au3脚本变量的问题.(已解决)
http://www.autoitx.com/forum.php ... amp;fromuid=7638255
(出处: AUTOIT CN)
发表于 2020-2-27 10:21:36 | 显示全部楼层
换个思路吧,既然变量都匹配了,替换短的变量会把长的给替换了,那就从长的变量开始替换吧。
比如先替换$iStart,再替换$i,不就OK了吗。
发表于 2020-2-27 10:30:18 | 显示全部楼层
建议不要用StringReplace()替换,用正则,效率高很多。
 楼主| 发表于 2020-2-27 13:50:41 | 显示全部楼层
862228699 发表于 2020-2-27 10:21
换个思路吧,既然变量都匹配了,替换短的变量会把长的给替换了,那就从长的变量开始替换吧。
比如先替换$i ...

这只是个简单的例子,实际上还包含很多复杂的情况(万一会有$iStart和$iStend呢)
想要实现的效果是:替换脚本中的所有某个变量,同时不影响其他任何的字符
 楼主| 发表于 2020-2-27 13:51:33 | 显示全部楼层
绿色风 发表于 2020-2-26 23:55
说过不会正则的办法:  替换的话,也就这几个可能 吧

$i空格 $i& $i+ $i- $i= $i* $i/ $i" $i' $i) $i]    ...

这个只是匹配的方法吧,,,
发表于 2020-2-27 16:03:06 | 显示全部楼层
itsky2 发表于 2020-2-27 13:50
这只是个简单的例子,实际上还包含很多复杂的情况(万一会有$iStart和$iStend呢)
想要实现的效果是:替 ...

$iStart和$iStend   是一样吗?
发表于 2020-2-27 16:45:56 | 显示全部楼层
### 友情提示:本脚本由 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)
 楼主| 发表于 2020-2-27 22:28:18 | 显示全部楼层

谢谢,看起来简单又实用!我试试写一个代码混淆
发表于 2020-2-29 11:36:37 | 显示全部楼层
itsky2 发表于 2020-2-27 22:28
谢谢,看起来简单又实用!我试试写一个代码混淆

呵呵,加油。
发表于 2020-3-1 00:05:00 | 显示全部楼层
跟着学习一下。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 15:09 , Processed in 0.093190 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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