afan 发表于 2010-11-5 01:51:24

[正则练习]找出某变量(赋值)中的变量

本帖最后由 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:56:43

本帖最后由 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:13:20

本帖最后由 蜘蛛抱蛋 于 2010-11-5 09:19 编辑

只匹配到内部的,两头的实在没办法
\&\s?.*?(\$\w)\s?\&|^.*?(\$\w)

Duvet 发表于 2010-11-5 17:02:40

本帖最后由 Duvet 于 2012-2-25 01:17 编辑

不一定非得一次正则完成,也可分几步完成,只要最终结果正确即可。本人用了两次正则完成,因为觉得似乎更容易理解和便于修改。afan 发表于 2010-11-5 01:51 http://www.autoitx.com/images/common/back.gif
分成兩次才是正確的^^

**** Hidden Message *****

binghc 发表于 2010-11-5 17:28:25

回复 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:23:44

本帖最后由 Duvet 于 2010-11-5 18:55 编辑

回复 5# binghc
**** Hidden Message *****

binghc 发表于 2010-11-5 18:53:44

回复 6# Duvet


    我现在有点明白为什么
**** Hidden Message *****
不能一步到位了,问题就出在分支上

lchl0588 发表于 2010-11-5 19:30:05

本帖最后由 lchl0588 于 2010-11-5 19:39 编辑

第一次玩正则,不知道对不对?
**** Hidden Message *****

不会隐藏的,偶告诉你代码**** Hidden Message *****代码高亮代码

hzxymkb 发表于 2010-11-5 20:40:31

完全不懂正则!能做得就是顶!

afan 发表于 2010-11-5 20:59:58

今天论坛有问题,一直上不了,刚才上来才发现各位已经讨论开了,并且解题都很精彩,有空再好好学习下~~
一楼贴出了我的题解,还请各位指点~

landays 发表于 2010-11-6 02:27:17

膜拜各位正则高手

rolaka 发表于 2010-11-6 09:55:50

本帖最后由 rolaka 于 2010-11-6 09:57 编辑

继续意淫

贪婪匹配所有的'' "" 然后开始提取变量$+


第二个正想做的解决办法是... 模仿au3读取脚本的方法来做 正则太没安全感了 我用自己的办法混淆脚本 ()会出现N层嵌套的... 完全不能满足

风行者 发表于 2010-11-6 10:17:20

不知道这样算不算,将字符放在a.txt,再提取出来
**** Hidden Message *****

shenrenba 发表于 2010-11-6 10:34:00

我看看各位的答案我没做出来

xuanfeng1234567 发表于 2010-11-6 11:21:44

实在是晕了,真是不好解决啊,学习下大大们的!
页: [1] 2
查看完整版本: [正则练习]找出某变量(赋值)中的变量