vim :匹配正则表达式
vim :match regexp
我想匹配无效的 C/C++ 行,这就是我使用下面的正则表达式的原因
/^[^#].+(.+[^;(){}])$/
使用命令 :match errorMsg
:
我经常验证一些简单的条件
一行:
- 启动时没有
#
(预处理器命令)
- 不以
;,(),{}
结尾
将被视为错误行
但没有任何帮助
你可以使用
/\v^[^#].*$([;(){}])@<!/
详情:
\v
- 避免过度转义特殊模式字符的非常神奇的模式
^
- 行首
[^#]
- #
以外的任何字符(不匹配 Vim 中的换行符)
.*$
- 一行的其余部分,零个或多个字符 (.*
) 和行尾 ($
)
([;(){}])@<!
- 允许 negative lookbehind、;
、(
、)
、{
和 }
就在字符串的末尾。
这是 this pattern demo(转换为 PCRE 只是为了演示目的)。
它适用于 Vim:
文件内容如
abc match me
abc no match;
match
# def no MATCH{}
}
{
(
)
;
我想匹配无效的 C/C++ 行,这就是我使用下面的正则表达式的原因
/^[^#].+(.+[^;(){}])$/
使用命令 :match errorMsg
:
我经常验证一些简单的条件
一行:
- 启动时没有
#
(预处理器命令) - 不以
;,(),{}
结尾
将被视为错误行
但没有任何帮助
你可以使用
/\v^[^#].*$([;(){}])@<!/
详情:
\v
- 避免过度转义特殊模式字符的非常神奇的模式^
- 行首[^#]
-#
以外的任何字符(不匹配 Vim 中的换行符).*$
- 一行的其余部分,零个或多个字符 (.*
) 和行尾 ($
)([;(){}])@<!
- 允许 negative lookbehind、;
、(
、)
、{
和}
就在字符串的末尾。
这是 this pattern demo(转换为 PCRE 只是为了演示目的)。
它适用于 Vim:
文件内容如
abc match me
abc no match;
match
# def no MATCH{}
}
{
(
)
;