举报
例如用正则式/perl|perlman/来匹配文本 ‘perlman book’。如果是NFA,则以正则式为导向,手里捏着正则式,眼睛看着文本,一个字符一个字符的吃,吃完 ‘perl’ 以后,跟第一个子正则式/perl/已经匹配上了,于是记录在案,往下再看,吃进一个 ‘m’,这下糟了,跟子式/perl/不匹配了,于是把m吐出来,向上汇报说成功匹配 ‘perl’,不再关心其他,也不尝试后面那个子正则式/perlman/,自然也就看不到那个更好的答案了。 如果是DFA,它是以文本为导向,手里捏着文本,眼睛看着正则式,一口一口的吃。吃到/p/,就在手里的 ‘p’ 上打一个钩,记上一笔,说这个字符已经匹配上了,然后往下吃。当看到 /perl/ 之后,DFA不会停,会尝试再吃一口。这时候,第一个子正则式已经山穷水尽了,没得吃了,于是就甩掉它,去吃第二个子正则式的/m/。这一吃好了,因为又匹配上了,于是接着往下吃。直到把正则式吃完,心满意足往上报告说成功匹配了 ‘perlman’。
您需要 登录 才可以下载或查看,没有账号?加入
查看全部评分
传说中的无敌! 括号嵌套最高可达5层(一般再高也碰不到了,如果非要加也可以实现) 支持字符串和数值型 ... binghc 发表于 2010-11-5 16:57
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
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度
GMT+8, 2025-9-21 05:59 , Processed in 0.107338 second(s), 20 queries .
Powered by Discuz! X3.5 Licensed
© 2001-2025 Discuz! Team.