找回密码
 加入
搜索
楼主: afan

[AU3基础] [正则练习]删除某行代码的注释部分

 火...   [复制链接]
发表于 2010-11-8 15:48:32 | 显示全部楼层
回复 1# afan

#include <array.au3>
Local $text = '$s =' & "'2" & '"3;5 ' & "'bb&$a & " & '"a' & "' ;" & '"& $b  ;" ' & "' s a a注释;ad" & '" ' & "' "

$str = StringRegExp($text,'.*\S',3)

for $i = 0 to UBound($str) - 1
    msgbox(0, "正则表达式选项 3 测试 " & $i, $str[$i],4)
Next
_ArrayDisplay($str)


不知道这样行不行?
 楼主| 发表于 2010-11-8 16:39:44 | 显示全部楼层
回复 61# lchl0588


    这里只是个例子,在实际应用中字符串可能是任何组合,所以,不能仅根据当前的测试字符来做匹配的依据,不然就没意义了(照你现在的思维,大可不必用正则,直接用StringTrimRight删除右边几个字符即可)。

评分

参与人数 1金钱 +10 收起 理由
lchl0588 + 10 谢谢!

查看全部评分

发表于 2010-11-8 18:20:09 | 显示全部楼层
回复 62# afan
谢谢,但我出个题:
'$s =' & "'2" & '"3;5 ' & "'bb&$a & " & '"a' &"'y''h "' $b ;"h & '"()?>??,l;lfdfjdfkldsjfpeklmd& $hykhybym$b  ;" ' & "'  '' "" "'注'$b '释';ad" & '" ' & "' "

答案跟1楼一样!  看以前的是否成立?
 楼主| 发表于 2010-11-8 18:24:43 | 显示全部楼层
本帖最后由 afan 于 2010-11-8 18:32 编辑
回复  afan
谢谢,但我出个题:

答案跟1楼一样!  看以前的是否成立?
lchl0588 发表于 2010-11-8 18:20



    这个字符串中的$s本身就是错误的定义…
一运行就知道了~ 错误的东东Au3本身就不接受(注意我一楼题解中的一句话:“首先你的代码必须在au3中能正确得到处理”)
local $str = '$s =' & "'2" & '"3;5 ' & "'bb&$a & " & '"a' &"'y''h "' $b ;"h & '"()?>??,l;lfdfjdfkldsjfpeklmd& $hykhybym$b  ;" ' & "'  '' "" "'注'$b '释';ad" & '" ' & "' "
MsgBox(0, '原字符串', $Str)
发表于 2010-11-8 18:26:43 | 显示全部楼层

评分

参与人数 1金钱 -10 贡献 -1 收起 理由
afan -10 -1 警告,禁止纯表情!

查看全部评分

发表于 2010-11-8 18:58:22 | 显示全部楼层
本帖最后由 lchl0588 于 2010-11-8 19:31 编辑

回复 64# afan
暂时抛开在AU3中是否成立的问题!在这里单从你的软件“Au3.REGHelper_0.9.8.1”中来讲:就是去掉1楼中右半部分!
那你看一看我测试的乱七八糟的代码------------汗!   

哈哈,终于测试成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-11-8 19:34:19 | 显示全部楼层
回复 64# afan
不知道你测试成功没?

我的答案没有放出来!!
 楼主| 发表于 2010-11-8 19:44:42 | 显示全部楼层
本帖最后由 afan 于 2010-11-8 21:12 编辑

回复 66# lchl0588


    可能你还没理解我的意思:
在工具的源字符串中应该是和Au3书写一样的格式,如 $a = 'xxx' 而非 "$a = 'xxx'" ,因为在这里,后者无任何意义,也非标题所注的“某行代码”。脱离了这个前提,此题也无任何意义~
 楼主| 发表于 2010-11-8 19:56:12 | 显示全部楼层
本帖最后由 afan 于 2010-11-8 20:40 编辑

回复 67# lchl0588


    我没有测试,原因如上所述,不知道你懂了我说的意思没~

说个简单应用吧,就拿我这个工具说话
如何得到在 Edit 编辑框中定义的变量的值,编辑框中的字符如下:
$a = 'a;1"2"3' ; " " & $b
还有个条件,不能用生成临时au3脚本再执行的方法(用户电脑中不一定安装了Autoit3,不想因此增加多余的文件)

如果觉得简单的话,还可以增加难度,变量嵌套:
$a = 'a;1"2"3' ; " " & $b
$b = $a & @ScriptDir & 2 * 5 ;'"'

最终目的:
将编辑框中声明的变量在表达式输入框中匹配,得到代入变量后的表达式,如表达式中的字符串为:
(?##$a)--(?##$b)--(?##$c)
代入变量后的表达式就应为:
a;1"2"3--a;1"2"3x:\xx\xxx10--(?##$c)
上面的(?##$c)不会被解析,因为$c没有声明。
最后因为有脚本输出功能,还需重新组合表达式为
$a & '--' & $b & '--(?##$c)'
当然,这只是简单的说明一下原理,实际过程会复杂得多(注:已发布的0.9.8.1版并不支持注释及变量嵌套)…

当然这与本主题讨论的问题没有必然关系,但本主题讨论的问题可以帮助实现上面的应用。
发表于 2010-11-9 14:13:51 | 显示全部楼层
逐行读取 返回行数 和信息 正则判断  修改指定行
发表于 2010-11-9 17:21:51 | 显示全部楼层
本帖最后由 binghc 于 2010-11-17 10:30 编辑

受本题启发,我写了个能删除au3中所有注释的脚本

http://www.autoitx.com/forum.php ... mp;extra=#pid230669
发表于 2010-11-12 08:11:43 | 显示全部楼层
让我也瞧瞧,学习中
发表于 2010-11-17 10:25:20 | 显示全部楼层
本帖最后由 binghc 于 2010-11-17 10:30 编辑

传说中的神话在这里!!100组括号嵌套!!!

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-11-17 11:32:54 | 显示全部楼层
什么东西这么牛?
发表于 2010-11-17 11:35:53 | 显示全部楼层
学习中进步                 ~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-19 06:25 , Processed in 0.083453 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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