Vim正则表达式,括号内有元字符

时间:2011-09-07 22:37:52

标签: regex vim

如何在vim正则表达式中搜索元字符或其他字符?

示例:(我希望这与元字符'\ w'或字符' - '匹配1次或更多次

[-\w]\+

但是那个正则表达式并不像我希望的那样有效。它只匹配 - ,w和。我试图逃避'\',但这不起作用。

我查看了vim文档,但没有这方面的例子。

3 个答案:

答案 0 :(得分:13)

在集合中,您必须使用特殊字符类。以下表达式与您的表达式相同:

[-_[:alnum:]]\+

检查:h [:alnum:](及后续行)以获取受支持类的完整列表。

答案 1 :(得分:4)

\%(\w\|-\)*

使用\%(组,因此无法捕获任何内容。 \|\w

之间的替换-

或非常神奇,\v

\v%(\w|-)*

答案 2 :(得分:0)

有一个名为eregex.vim的插件,它将PCRE转换为Vim的语法,将[\w]扩展为[0-9A-Za-z_],以及它所做的许多其他事情。需要over a thousand lines of vim to achieve that translation