Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vim语法仅在后跟否定词时突出显示_Regex_Vim_Syntax - Fatal编程技术网

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