vim 搜索包含特定位数的数字

mtk*_*mtk 27 vim search regular-expression

我需要在一个大文档中找到特定的长度数字。我尝试为此使用正则表达式。例如,如果我需要搜索正好为 2 位的数字,我会使用\d\d(即 /d 两次后跟一个空格)。这很好用。

但是要找到 10 位数字,输入\d10 次实际上并不可行。

试过\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