16

在 vim 中,我如何搜索以(在这种情况下)单词“DROP”结尾的任何行?

4

1 回答 1

25
/\(DROP\)\@<!$

这使用了一个零宽度的负后视断言。它只找到行尾,并且找到没有DROP紧接在它们之前的行尾。

如果要查找整行,可以使用:

/^.*\(DROP\)\@<!$

请注意,您必须将其括DROP起来,\( .. \)因为前瞻和后瞻断言只会匹配单个“原子”。因此,您使用括号将您的单词组合成一个原子。

如果你尝试过/DROP\@<!$,那么你会得到像这里的粗体部分这样的搜索结果:

abcdef
测试测试DRO
12345DROP
12345 DRO
12345


此页面上有这些断言的教程,尽管它不使用 VIM 正则表达式语法:

您也可以在 VIM 中键入此命令以获取有关命令的帮助:

:help \@<!

类似的断言:

\@=
\@<=
\@!
于 2012-04-26T06:03:11.443 回答