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

来源:互联网 发布:淘宝改库存有影响吗 编辑:程序博客网 时间:2024/05/17 03:08

正则字符: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”,匹配成功了。