Js杂谈-正则的测试与回溯次数
摘要:
例子来源于这本书,我贴出来:这里的NFA是正则的一种引擎,书中介绍了一共三种引擎:NFA,DFA和POSIX NFA。像一般我们常用的.NET,java.util.regex中都使用传统型的NFA。这里纠正下书中的印刷错误,第二条正则是/"([^\\*]|\\.)*"/,类似将选择分支颠倒。先从第一条正则开始:/"(\\.|[^\\"])*"/根据匹配优先,尽可能多的去匹配文本,筛选条件根据NFA引擎的原理,从左开始依次筛选。至于最后的"号为什么测试3次,首先先尝试与两种分支情况匹配,都失败,最后用正则的最后一个"与之匹配。 阅读全文
posted @ 2013-09-26 16:59 无码帝 阅读(1549) 评论(0) 推荐(0) 编辑