-2

我正在尝试使用 vim 的正则表达式引擎来语法高亮 @ 而没有任何与之相邻的单词字符,例如:

 The @ matches
 The@does not match.

我要么匹配所有@s,要么只匹配@s 与周围的空格(意味着行首的那些不匹配。

看起来 vim 实际上并没有以非常严格的方式遵守正则表达式标准,这在编写语法文件时令人沮丧。

4

1 回答 1

3

我觉得 vim 中的正则表达式非常强大,尽管有时语法有点奇怪。

给出以下作为示例输入:

@ foo
foo @ bar
foo @
foo@bar

这一行:(由/(搜索)引导)

/\v(^| )\zs\@\ze($| )

匹配@1-3 行,但不匹配第 4 行。

你可以考虑使用\s而不是space太。

于 2013-03-26T21:09:34.863 回答