在 vim 中,我如何搜索不以(在这种情况下)单词“DROP”结尾的任何行?
问问题
3252 次
1 回答
25
/\(DROP\)\@<!$
这使用了一个零宽度的负后视断言。它只找到行尾,并且只找到没有DROP
紧接在它们之前的行尾。
如果要查找整行,可以使用:
/^.*\(DROP\)\@<!$
请注意,您必须将其括DROP
起来,\( .. \)
因为前瞻和后瞻断言只会匹配单个“原子”。因此,您使用括号将您的单词组合成一个原子。
如果你尝试过/DROP\@<!$
,那么你会得到像这里的粗体部分这样的搜索结果:
abcdef
测试测试DRO
12345DROP
12345 DRO
12345
此页面上有这些断言的教程,尽管它不使用 VIM 正则表达式语法:
您也可以在 VIM 中键入此命令以获取有关命令的帮助:
:help \@<!
类似的断言:
\@=
\@<=
\@!
于 2012-04-26T06:03:11.443 回答