找回密码
 加入
搜索
查看: 8817|回复: 18

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

 火..   [复制链接]
发表于 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
不一定非得一次正则完成,也可分几步完成,只要最终结果正确即可。本人用了两次正则完成,因为觉得似乎更容易理解和便于修改。

有兴趣的可以试试~ 注意将答案隐藏~

以下是我的题解:
游客,如果您要查看本帖隐藏内容请回复
发表于 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

游客,如果您要查看本帖隐藏内容请回复

我晕了,像第一步的代码在au3里就变成语法错误了,又是因为该死的引号
再提个问题第二步换成(?m)\$\w+$,为什么不行?

评分

参与人数 1金钱 +50 收起 理由
afan + 50 不错~

查看全部评分

发表于 2010-11-5 09:13:20 | 显示全部楼层
本帖最后由 蜘蛛抱蛋 于 2010-11-5 09:19 编辑

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

评分

参与人数 1金钱 +30 收起 理由
afan + 30 加油,还差一点,呵呵

查看全部评分

发表于 2010-11-5 17:02:40 | 显示全部楼层
本帖最后由 Duvet 于 2012-2-25 01:17 编辑
不一定非得一次正则完成,也可分几步完成,只要最终结果正确即可。本人用了两次正则完成,因为觉得似乎更容易理解和便于修改。afan 发表于 2010-11-5 01:51

分成兩次才是正確的^^

游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1金钱 +100 收起 理由
afan + 100 很完美~!

查看全部评分

发表于 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

还有请教一下:
游客,如果您要查看本帖隐藏内容请回复

本来我的代码也可以一步到位,像上面,可为什么就不行了!

评分

参与人数 1金钱 +30 贡献 +5 收起 理由
Duvet + 30 + 5 感謝回報^^

查看全部评分

发表于 2010-11-5 18:23:44 | 显示全部楼层
本帖最后由 Duvet 于 2010-11-5 18:55 编辑

回复 5# binghc
游客,如果您要查看本帖隐藏内容请回复
发表于 2010-11-5 18:53:44 | 显示全部楼层
回复 6# Duvet


    我现在有点明白为什么
游客,如果您要查看本帖隐藏内容请回复

不能一步到位了,问题就出在分支上
发表于 2010-11-5 19:30:05 | 显示全部楼层
本帖最后由 lchl0588 于 2010-11-5 19:39 编辑

第一次玩正则,不知道对不对?
游客,如果您要查看本帖隐藏内容请回复


不会隐藏的,偶告诉你代码
[Hide]  内容  [/hide]
代码高亮
[au3]代码[/au3]

评分

参与人数 1金钱 +25 收起 理由
afan + 25 投机取巧… 哈

查看全部评分

发表于 2010-11-5 20:40:31 | 显示全部楼层
完全不懂正则!能做得就是顶!
 楼主| 发表于 2010-11-5 20:59:58 | 显示全部楼层
今天论坛有问题,一直上不了,刚才上来才发现各位已经讨论开了,并且解题都很精彩,有空再好好学习下~~
一楼贴出了我的题解,还请各位指点~
发表于 2010-11-6 02:27:17 | 显示全部楼层
膜拜各位正则高手
发表于 2010-11-6 09:55:50 | 显示全部楼层
本帖最后由 rolaka 于 2010-11-6 09:57 编辑

继续意淫

贪婪匹配所有的'' "" 然后开始提取变量$[a-zA-Z0-9]+


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

评分

参与人数 1金钱 +25 收起 理由
afan + 25 :)

查看全部评分

发表于 2010-11-6 10:17:20 | 显示全部楼层
不知道这样算不算,将字符放在a.txt,再提取出来
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1金钱 +25 收起 理由
afan + 25 似乎没引号内的伪变量:)

查看全部评分

发表于 2010-11-6 10:34:00 | 显示全部楼层
我看看各位的答案  我没做出来
发表于 2010-11-6 11:21:44 | 显示全部楼层
实在是晕了,真是不好解决啊,学习下大大们的!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-6 08:20 , Processed in 0.111347 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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