我需要一个PHP正则表达式来识别类似的模式:
==快速布朗福克斯==
正则表达式无法匹配,但是:
===快速布朗狐狸===
我构造了以下正则表达式 - 我所以关闭:
={2}[a-zA-z0-9 ]*={2}
答案 0 :(得分:2)
之前使用lookbehind,并且像这样使用lookahead:
(?<=^|[^=])={2}[a-zA-z0-9 ]*={2}(?=$|[^=])
编辑虽然此解决方案有效,但效率不如Justin。
答案 1 :(得分:2)
这看起来像是lookarounds的工作:
(?<!=)==[a-zA-z0-9 ]*==(?!=)
我发现以上是最易读的方法。您还可以使用以下内容,其工作方式基本相同:
==(?<!={3})[a-zA-z0-9 ]*(?!={3})==
这也允许您在同一个字符串中多次匹配,只要它们之间有中断(任何非=
字符)。例如,==foo== ==bar==
应该产生2个匹配,而==foo====bar==
则不产生任何匹配。
答案 2 :(得分:0)
^={2}[a-zA-z0-9\s]+={2}$
\s
匹配空格
^
表示开头
$
表示结束