vim 中查找不以 ab 结尾的行

ForkKILLET
  • 1.6k

我用的是 /[^a][^b]$,但 [^b] 似乎没起作用:只要一行倒数第 2 个字符是 a,就没有被 vim 匹配——我的正则出了什么问题?

回复
阅读 1k
2 个回答

写法明显有问题吧,你这样写的意思是:倒数第一个不是b,倒数第二个不是a的所有行。
没用vim,试了一下这个应该是可以的/^.*(?<!ab)$/

[^a][^b]$ 排除 a..b,与需求「排除 ab」 是不一致的!
正确的方法是使用否定零宽断言(环视):^(.*ab$)@!.*,需要注意的是有两个 .*

你知道吗?

宣传栏