如何匹配 vim 中的任何字母序列和 "something else"?

How do I match any sequence of letters and "something else" in vim?

我想将任何字母序列与其他一些特殊字符相匹配,比如 :;。这是我尝试做的事情:

/[\w;:]*

但这似乎符合一切VIM documentation 给出了 [Vv] 作为正则表达式的示例,它可以定位 Vv,果然这似乎有效。我在这里做错了什么?

to match any sequence of letters with some other special characters, say : and ;

[A-Za-z:;]*

\w不仅包括字母,还包括数字和下划线符号。 * 重复前一个标记零次或多次。

\w 原子在 集合 中不起作用。您需要使用 branches:

/\%(\w\|[;:]\)*

但通过 :help /\w 查找字符范围并将其放入集合中更容易:

/[0-9A-Za-z_;:]*

还有几个字符类\w 有 none,但 [:alnum:] 接近,只缺少 _:

/[[:alnum:]_;:]*

注意:如果您真的只想要 个字母,那就是 \a[:alpha:].