[正则练习]找出某变量(赋值)中的变量
本帖最后由 afan 于 2010-11-9 20:02 编辑此题为 此贴 的姊妹篇~
在以下这段代码中变量 $str 的赋值中含有其它变量,其中有部分类似变量的其实只是字符串。如何用正则方式找出其中真正的变量:$a、$b、$c、$d、$e
$str = ($c&'') &'2"& $h3 &;5 '&str($d&"'$i"&$e&'$j')&"'"& $a & "a'* $g-str($f);"& 1+$b
测试时只需使用以下这段字符串即可($c&'') &'2"& $h3 &;5 '&str($d&"'$i"&$e&'$j')&"'"& $a & "a'* $g-str($f);"& 1+$b不一定非得一次正则完成,也可分几步完成,只要最终结果正确即可。本人用了两次正则完成,因为觉得似乎更容易理解和便于修改。
有兴趣的可以试试~ 注意将答案隐藏~
以下是我的题解:
**** Hidden Message ***** 本帖最后由 binghc 于 2010-11-5 08:59 编辑
回复 1# afan
$str = ($c&'') &'2"& $h3 &;5 '&str($d&"'$i"&$e&'$j')&"'"& $a & "a'* $g-str($f);"& 1+$b
**** Hidden Message *****
我晕了,像第一步的代码在au3里就变成语法错误了,又是因为该死的引号
再提个问题第二步换成(?m)\$\w+$,为什么不行? 本帖最后由 蜘蛛抱蛋 于 2010-11-5 09:19 编辑
只匹配到内部的,两头的实在没办法
\&\s?.*?(\$\w)\s?\&|^.*?(\$\w) 本帖最后由 Duvet 于 2012-2-25 01:17 编辑
不一定非得一次正则完成,也可分几步完成,只要最终结果正确即可。本人用了两次正则完成,因为觉得似乎更容易理解和便于修改。afan 发表于 2010-11-5 01:51 http://www.autoitx.com/images/common/back.gif
分成兩次才是正確的^^
**** Hidden Message ***** 回复 4# Duvet
你的代码很完美,一步到位,但是如果在开头加个字符串:
"$s"&($c&'') &'2"& $h3 &;5 '&str($d&"'$i"&$e&'$j')&"'"& $a & "a'* $g-str($f);"& 1+$b
还有请教一下:
**** Hidden Message *****
本来我的代码也可以一步到位,像上面,可为什么就不行了! 本帖最后由 Duvet 于 2010-11-5 18:55 编辑
回复 5# binghc
**** Hidden Message ***** 回复 6# Duvet
我现在有点明白为什么
**** Hidden Message *****
不能一步到位了,问题就出在分支上 本帖最后由 lchl0588 于 2010-11-5 19:39 编辑
第一次玩正则,不知道对不对?
**** Hidden Message *****
不会隐藏的,偶告诉你代码**** Hidden Message *****代码高亮代码 完全不懂正则!能做得就是顶! 今天论坛有问题,一直上不了,刚才上来才发现各位已经讨论开了,并且解题都很精彩,有空再好好学习下~~
一楼贴出了我的题解,还请各位指点~ 膜拜各位正则高手 本帖最后由 rolaka 于 2010-11-6 09:57 编辑
继续意淫
贪婪匹配所有的'' "" 然后开始提取变量$+
第二个正想做的解决办法是... 模仿au3读取脚本的方法来做 正则太没安全感了 我用自己的办法混淆脚本 ()会出现N层嵌套的... 完全不能满足 不知道这样算不算,将字符放在a.txt,再提取出来
**** Hidden Message ***** 我看看各位的答案我没做出来 实在是晕了,真是不好解决啊,学习下大大们的!
页:
[1]
2