PHP,正则表达式只替换两个字符,仅此而已

Mad*_*vin 2 php regex

所以我一直在寻找一段时间,我开始发疯了.我显然不是RegEx专家,但我希望你能快点帮我.

问题

我正在尝试编写一个正则表达式行,它将取代两个破折号,不多也不少.应该忽略一个破折号,并且应该忽略三个破折号.

我试过的

我想出了这个,但它循环:

[--]{2}
Run Code Online (Sandbox Code Playgroud)

这没有给我什么:

^[--]{2}$
Run Code Online (Sandbox Code Playgroud)

帮帮我!谢谢!

ndn*_*kov 6

负面外观围绕你的破折号:

(?<!-)--(?!-)
Run Code Online (Sandbox Code Playgroud)

这样,只有在它们之前或之后没有破折号时,两个破折号才会匹配.

  • 未来的用户应该真正阅读我给出的链接.然而,长话短说:`(?<!something)`基本上意味着*如果**某事**先于当前位置*并且`(?!某事)`表示*失败,则表示*失败,如果**某事**跟随当前位置*. (2认同)