读《精通正则表达式》:优先选择最左端的匹配结果

正则字符:fat|cat|belly|your

待测字符:The dragging belly,indicates your cat is too fat

匹配的第一个结果不是“fat ”,而是“belly ”。

     正则表达式也能够匹配fat和其它可能,但它们都不是最先出现的匹配结果(除现在最左边的结果),所以不会被选择。在进行下一轮尝试之前,正则表达式的所有可能都会尝试,也就是说,在移动之前,fat,cat,belly,your都必须尝试。

     利用RegexBuddy调试可以看到(语言是java),正则引擎先将fat去匹配第一个字母“T”,不成功,回溯,再拿 cat去匹配,又不成功,再回溯。 当所有都不匹配成功时,则向前移动。尝试第二个字母,以此类推,直至用“belly”去匹配单词“belly”,匹配成功了。


你可能感兴趣的:(读《精通正则表达式》:优先选择最左端的匹配结果)