将字符串与恰好两个“=";两边的字符


Matching a string with exactly two "=" characters on either side

我需要一个PHP正则表达式来识别以下模式:

===快速褐狐===

但是正则表达式无法匹配:

===快速褐狐===

我构建了以下正则表达式-我所以关闭:

={2}[a-zA-z0-9 ]*={2}

像这样在前面和后面使用lookbacking:

(?<=^|[^=])={2}[a-zA-z0-9 ]*={2}(?=$|[^=])

编辑:尽管此解决方案有效,但不如Justin的有效。

这看起来像是一项查找工作:

(?<!=)==[a-zA-z0-9 ]*==(?!=)

我发现以上是最容易阅读的方法。您也可以使用以下方法,其工作方式基本相同:

==(?<!={3})[a-zA-z0-9 ]*(?!={3})==

这也将允许您在同一字符串中多次匹配,只要它们之间有一个break(任何非=字符(。例如,==foo== ==bar==应该产生2个匹配,而==foo====bar==应该不产生任何匹配。

^={2}[a-zA-z0-9's]+={2}$

's匹配空白
^表示开始
$表示结束