我正在使用vim在文本文件上进行一些模式匹配。我已经启用了搜索突出显示功能,这样我就可以确切地知道每次搜索都匹配了什么,并且感到困惑。
考虑在以下文字中搜索[a-z]*
:
123456789abcdefghijklmnopqrstuvwxyxz987654321ABCDEFGHIJKLMNOPQRSTUVWQXZ
我希望此搜索能够匹配[a-z]范围内的零个或多个连续字符。相反,我在整条线上获得了一场比赛。
这应该是预期的行为吗?
谢谢,
安德鲁
答案 0 :(得分:7)
它匹配每个字符后出现的空字符串。它无法突出显示空范围,因此看起来所有内容都会突出显示。
尝试搜索[a-z]\+
。
答案 1 :(得分:2)
空字符串匹配[a-z]*
...因此这个东西在任何地方都匹配。也许你想通过[a-z]+
(1或更多)或[a-z]{4,}
(4或更多)来减少一些案例。
答案 2 :(得分:2)
你没有在整条线上得到一个匹配,你得到的每个角色都匹配。您的模式也根本不匹配,每个字符都匹配。