5
我最近一直在玩正则表达式,有一件事情不像我预期的那样,当我在php中使用preg_match_all。正则表达式原子分组似乎不工作preg_match_all()
我使用的在线正则表达式工具http://www.solmetra.com/scripts/regex/index.php。
我使用的正则表达式是/(?>x|y|z)w/
。我正在匹配abyxw
。我期待它失败,但它成功,并匹配xw
。
由于使用了原子分组,所以我预计它会失败,从我从多个源读取的内容中,这会阻止回溯。我期待的是引擎试图匹配y
交替和成功。稍后,它尝试将w
与正则表达式文字w
相匹配并失败,因为它遇到了x
。然后它会正常回溯,但不应该在这种情况下,由于原子分组。所以从我所知道的情况来看,它应该继续尝试将y
与这个原子组相匹配。但事实并非如此。
我希望能够解决这种情况。 :)
谢谢,这说明了一切。 ;) – Neob91 2013-03-07 19:14:30