mtk*_*mtk 27 vim search regular-expression
我需要在一个大文档中找到特定的长度数字。我尝试为此使用正则表达式。例如,如果我需要搜索正好为 2 位的数字,我会使用\d\d
(即 /d 两次后跟一个空格)。这很好用。
但是要找到 10 位数字,输入\d
10 次实际上并不可行。
试过\d{2}
,说' E486:找不到模式:\d{2} '
有没有更快/更容易的方法来实现这一目标?
Ing*_*kat 40
有不同的正则表达式方言;有些(例如 Perl 的)不需要在量化修饰符( \d{2}
) 中使用反斜杠,有些(例如 sed)需要两个 ( \d\{2\}
),而在 Vim 中,只有开头的卷曲需要它 ( \d\{2}
)。这是不兼容的正则表达式方言的可悲状态。
另请注意,要匹配准确的数字,您必须锚定匹配项,以便\d\{2}
与 中的数字 ( 12
)不匹配123
。这可以通过负向后视和前视来完成:
\d\@<!\d\{2}\d\@!
Run Code Online (Sandbox Code Playgroud)
Rap*_*ens 12
请尝试以下操作:
\d\{2}
Run Code Online (Sandbox Code Playgroud)
你应该使用\
not/
你可以找到更多关于VIM的这个常规exression网站或vim
用:help regular
。