vim 中查找不以 ab 结尾的行

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

阅读 4.6k
2 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题