负面回顾中的后向参考

时间:2012-07-26 10:06:29

标签: php regex

以aa或bb开头。结束它(后参考)。中间没有它。

没有“或”和后退参考 - aa.*?(?!aa).*?aa
是没关系的 但它不能与他们合作: (aa|bb).*?(?!\1).*?\1

echo preg_match("@(aa|bb).*?(?!\\1).*?\\1@", 'aaxxaaxaa'); // 1 ??
echo preg_match("@(aa|bb).*?(?!\\1).*?\\1@", 'aaxxxaa'); // 1

有什么问题?

1 个答案:

答案 0 :(得分:2)

您需要检查每个角色的负面情况

(aa|bb)((?!\\1).)*\\1

您还需要添加锚点。

^(aa|bb)((?!\\1).)*\\1$

查看在线工作:ideone