Vim RegEx:匹配到空行

Jus*_*ane 3 regex vim newline

我正在尝试编写一个RegEx,它将匹配任何包含".wpd"的行,然后匹配所有行,直到它到达一个空行(包括空行).

这就是我尝试过的:

/\v^.*.wpd\_.\{-}^\s*$
Run Code Online (Sandbox Code Playgroud)

但是,\{-}"所有字符包括新行"字符类之后的非贪婪运算符\{-}似乎不起作用.如果我使用

/\v^.*.wpd\_.*
Run Code Online (Sandbox Code Playgroud)

这将匹配包含".wpd"的下一行,然后是所有行.但是,一旦我更改*\{-},它就完全不匹配.

我究竟做错了什么?谢谢!

per*_*eal 7

这个似乎工作:

/\v^.*\.wpd\_.{-}\n\s*\n
Run Code Online (Sandbox Code Playgroud)


Ing*_*kat 6

你不能在正则表达式中使用原子^(相同$),它只在前面(后面)有它的特殊含义; 在其他地方,它被视为文字字符.使用一个换行符匹配的正则表达式内,如通过perreal的回答.\n