在Vim中,如何匹配"="但不匹配"=="?

me2*_*me2 7 regex vim

我尝试了很多不同的搜索模式:

  • [^=]=[^=] 只有当=不在开头/结尾并且它也匹配夹心字符时才有效
  • =\@!==\@!似乎应该工作,因为\ @!什么都不匹配但需要匹配,但它不匹配(参见:help pattern-overview)
  • [^=]\@==[^=]\@= 也似乎不应该

建议?

me2*_*me2 8

啊哈: =\@<!==\@!

  • `\(... \)\ @ <!`表示"不在...之前","\(... \)\ @!"表示"未跟随...".这些是零宽度匹配:它们必须匹配,但它们不会为匹配添加符号. (2认同)