Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以 aa 或 bb 开头。以它结束(反向引用)。并且中间没有它。
没有“或”和反向引用也没关系——aa.*?(?!aa).*?aa 但它不适用于它们: (aa|bb).*?(?!\1).*?\1
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
怎么了?
您需要检查每个字符的否定条件。
(aa|bb)((?!\\1).)*\\1
您还需要添加锚点。
^(aa|bb)((?!\\1).)*\\1$
在线查看它:ideone