Regex vim语法仅在后跟否定词时突出显示
我正在写一个语法插件,突出显示我日志中的某些关键字。 但我有一个麻烦,以突出只有在案件的负面结果词后 例如,我不希望在成功时突出显示Regex vim语法仅在后跟否定词时突出显示,regex,vim,syntax,Regex,Vim,Syntax,我正在写一个语法插件,突出显示我日志中的某些关键字。 但我有一个麻烦,以突出只有在案件的负面结果词后 例如,我不希望在成功时突出显示 result:good result:0x0000 不过,我想强调一下 result:bad result:notready result:0x0001 result:0xffff result:0x0002 但是我不能为这个负面结果做正则表达式。 我可以请求你的支持吗 PS:我试过了 syntax match error_result "\vresult:(
result:good
result:0x0000
不过,我想强调一下
result:bad
result:notready
result:0x0001
result:0xffff
result:0x0002
但是我不能为这个负面结果做正则表达式。
我可以请求你的支持吗
PS:我试过了
syntax match error_result "\vresult:(good|0x0000)@!"
但是它没有突出显示:(冒号)后面的剩余部分。模式
@代码>与零宽度匹配。要突出显示冒号后的所有内容,我们可以在模式后添加*
(任意数量的字符)以匹配行的其余部分,前提是(good | 0x0000)
组不匹配
如果只希望突出显示结果:
之后的文本,但仍然匹配相同的内容,请在匹配(突出显示)开始的位置添加\zs
序列。例如:
syntax match error_result "\vresult:(good|0x0000)@!\zs.*"
模式@代码>与零宽度匹配。要突出显示冒号后的所有内容,我们可以在模式后添加*
(任意数量的字符)以匹配行的其余部分,前提是(good | 0x0000)
组不匹配
如果只希望突出显示结果:
之后的文本,但仍然匹配相同的内容,请在匹配(突出显示)开始的位置添加\zs
序列。例如:
syntax match error_result "\vresult:(good|0x0000)@!\zs.*"
到目前为止,需要尝试哪些正则表达式和命令?我已经添加了我尝试过的内容。谢谢您的关注。@Olaf请注意OP询问的是vim regex,因此您的建议无效。到目前为止,您尝试了哪些regex和命令?我已经添加了我尝试过的内容。谢谢您的关注。@Olaf请注意OP询问的是vim regex,因此您的建议无效。谢谢。如果我只想突出显示否定词,而不是直到那一行的末尾,该怎么办?@windrg00将\zs
序列添加到匹配开始的位置。我将更新我的答案以添加此内容。\zs是什么意思??无论如何谢谢你@windrg00:h\zs
谢谢。如果我只想突出显示否定词,而不是直到那一行的末尾,该怎么办?@windrg00将\zs
序列添加到匹配开始的位置。我将更新我的答案以添加此内容。\zs是什么意思??无论如何谢谢你@windrg00:h\zs