Answers:
有不同的正则表达式方言。一些(例如Perl)在量化修饰符(\d{2}
)中不需要反斜杠,一些(例如sed)需要两个(\d\{2\}
),而在Vim中,只有开头的卷发需要它(\d\{2}
)。这是不兼容的正则表达式方言的悲哀状态。
另请注意,要匹配精确的数字,您必须锚定匹配项,以使其\d\{2}
与中的数字(12
)不匹配123
。这可以通过负向后看和超前来完成:
\d\@<!\d\{2}\d\@!
:help /\@<!
和更好地描述它:help /\@!
。如果您不立即了解所有内容,请不要担心。如我所说,这是相当先进的。
\v
如果希望避免不得不转义{
,也可以在regex的开头放置,请参阅:help magic
参考资料(更多信息使vim regex的行为更像perl regex,尽管仍然有所不同)。
\d\{4}
在Vi中,这简直是微不足道
逃脱括号的工作原理: \d\{2\}