正则表达式在vim中搜索

时间:2010-12-20 21:34:57

标签: regex vim

我正在使用vim在文本文件上进行一些模式匹配。我已经启用了搜索突出显示功能,这样我就可以确切地知道每次搜索都匹配了什么,并且感到困惑。

考虑在以下文字中搜索[a-z]*

123456789abcdefghijklmnopqrstuvwxyxz987654321ABCDEFGHIJKLMNOPQRSTUVWQXZ

我希望此搜索能够匹配[a-z]范围内的零个或多个连续字符。相反,我在整条线上获得了一场比赛。

这应该是预期的行为吗?

谢谢,

安德鲁

3 个答案:

答案 0 :(得分:7)

它匹配每个字符后出现的空字符串。它无法突出显示空范围,因此看起来所有内容都会突出显示。

尝试搜索[a-z]\+

答案 1 :(得分:2)

空字符串匹配[a-z]* ...因此这个东西在任何地方都匹配。也许你想通过[a-z]+(1或更多)或[a-z]{4,}(4或更多)来减少一些案例。

答案 2 :(得分:2)

你没有在整条线上得到一个匹配,你得到的每个角色都匹配。您的模式也根本不匹配,每个字符都匹配。