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

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

  [复制链接]
发表于 2010-11-4 22:29:44 | 显示全部楼层
进来学习一下.
发表于 2010-11-4 22:47:58 | 显示全部楼层
学习中!谢谢分享!
 楼主| 发表于 2010-11-4 23:11:50 | 显示全部楼层
Duvet 转的这篇很有趣,建议大家看看,相信会增加不少学习兴趣
http://iregex.org/blog/to-understand-regular-expressions.html
例如用正则式/perl|perlman/来匹配文本 ‘perlman book’。如果是NFA,则以正则式为导向,手里捏着正则式,眼睛看着文本,一个字符一个字符的吃,吃完 ‘perl’ 以后,跟第一个子正则式/perl/已经匹配上了,于是记录在案,往下再看,吃进一个 ‘m’,这下糟了,跟子式/perl/不匹配了,于是把m吐出来,向上汇报说成功匹配 ‘perl’,不再关心其他,也不尝试后面那个子正则式/perlman/,自然也就看不到那个更好的答案了。

如果是DFA,它是以文本为导向,手里捏着文本,眼睛看着正则式,一口一口的吃。吃到/p/,就在手里的 ‘p’ 上打一个钩,记上一笔,说这个字符已经匹配上了,然后往下吃。当看到 /perl/ 之后,DFA不会停,会尝试再吃一口。这时候,第一个子正则式已经山穷水尽了,没得吃了,于是就甩掉它,去吃第二个子正则式的/m/。这一吃好了,因为又匹配上了,于是接着往下吃。直到把正则式吃完,心满意足往上报告说成功匹配了 ‘perlman’。
发表于 2010-11-5 00:20:44 | 显示全部楼层
太强大了,Afan应该经常出些难题,让隐身的高手们都出来露露手。。
发表于 2010-11-5 09:25:57 | 显示全部楼层
我来学习一下  头疼
发表于 2010-11-5 16:57:34 | 显示全部楼层
本帖最后由 binghc 于 2010-11-5 17:07 编辑


传说中的无敌!
括号嵌套最高可达5层(一般再高也碰不到了,如果非要加也可以实现)
支持字符串和数值型赋值混合模式,支持Afan说的容错

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





注意第一条表达式和第二条表达式的区别




本帖子中包含更多资源

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

×

评分

参与人数 1金钱 +30 收起 理由
afan + 30 学习了

查看全部评分

 楼主| 发表于 2010-11-5 21:10:37 | 显示全部楼层
传说中的无敌!
括号嵌套最高可达5层(一般再高也碰不到了,如果非要加也可以实现)
支持字符串和数值型 ...
binghc 发表于 2010-11-5 16:57



    就凭你这执着劲就已经无敌了,O(∩_∩)O~
发表于 2010-11-6 00:04:22 | 显示全部楼层
可惜不会正则
发表于 2010-11-7 11:54:08 | 显示全部楼层
看看真麻烦.
发表于 2010-11-7 13:14:20 | 显示全部楼层
这个是我以前写一个东西的时候要得到一个完整路径的最后的名字的代码:
思路就是得到最后一个'\'的位置,然后通过StringRight()函数得到,不是用的正则,这个问题用这种方法应该也可以吧。
Global $str = 'c:\abc\abcd\abcde\cdefg'
Global $len = StringLen($str)

$last = StringInStr($str,'\',0,Sort())

$strnew = StringRight($str,($len - $last))

MsgBox(0,'最后的字符窜',$strnew)

Func Sort()
        
        For $i = 1 To $len  Step 1
                $num = StringInStr($str,'\',0,$i)
                If $num = 0 Then ExitLoop
        Next
        
        Return ($i - 1)        
EndFunc
正则方法大侠们的都很厉害了,我刚学正则不久就不献丑了。

评分

参与人数 1金钱 +25 收起 理由
afan + 25 加油

查看全部评分

 楼主| 发表于 2010-11-7 13:42:32 | 显示全部楼层
本帖最后由 afan 于 2010-11-7 13:43 编辑

回复 55# wzh880801


    此题除了用正则,几乎没别的方法~
看上去好像是和提取某层路径相似,其实却是完全不同的。此题出现的“;”可能全都是注释内容,也可能全都是字符串,也可能有些是注释有些是字符串。
发表于 2010-11-7 13:56:09 | 显示全部楼层
回复 56# afan

嗯嗯 就是 经大侠一提醒我也意识到了 如果没有注释而‘;’出现在代码中那就不能用Sring类函数实现了~~~

正则很强大,认真学习中~~~
发表于 2010-11-7 14:21:33 | 显示全部楼层
过来学习一下。。看看
发表于 2010-11-7 19:16:16 | 显示全部楼层
的确是挺强悍的,值得我学习。
发表于 2010-11-8 13:58:55 | 显示全部楼层
没怎么看懂题目的意思....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-28 19:47 , Processed in 0.072070 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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