我试图使用vim的正则表达式引擎的语法高亮@没有任何字,例如像这样与其相邻的字符,:非单词字符vim的
The @ matches
[email protected] not match.
我要么匹配所有@s还是我只有匹配@与空白周围(意思是在行首不匹配)
看来vim并不真正遵循正则表达式的标准,这是非常严格的,这在编写语法文件时很令人沮丧。
我试图使用vim的正则表达式引擎的语法高亮@没有任何字,例如像这样与其相邻的字符,:非单词字符vim的
The @ matches
[email protected] not match.
我要么匹配所有@s还是我只有匹配@与空白周围(意思是在行首不匹配)
看来vim并不真正遵循正则表达式的标准,这是非常严格的,这在编写语法文件时很令人沮丧。
我觉得vim中的正则表达式真的是powerfu l,即使有时语法有点奇怪。这条线
@ foo
foo @ bar
foo @
[email protected]
:(由/
(搜索领先))
/\v(^|)\zs\@\ze($|)
匹配1-3线的@
,但不是第四线
给定以下作为示例的输入。
您可以考虑使用\s
而不是space
。
这里使用了vim的一些正则表达式语法的一些解释:'\ v'打开“非常神奇”,这使得正则表达式语法看起来类似于perl的正则表达式语法,因为它减少了转义量。 '\ zs'标记匹配的开始,'\ ze'标记匹配的结束。如需更多帮助,请参阅':h/\ v',':h/\ zs'和':h/\ ze' – 2013-03-26 22:16:27
@PeterRincker感谢您的评论/解释 – Kent 2013-03-27 00:39:57
向我们展示您尝试的正则表达式。 – Tuxdude 2013-03-26 20:37:13
Vim的正则表达式语法直接从ed的语法中继承,因此早于任何创建“标准”的企图。 – romainl 2013-03-26 20:37:16