regex - vim 语法仅在被否定词后突出显示
问题描述
我正在编写一个语法插件,它在我的日志中突出显示某些关键字。但是只有在被否定结果词跟随的情况下,我才很难突出显示。
例如,我不想在成功时突出显示,
result:good
result:0x0000
但是我想强调
result:bad
result:notready
result:0x0001
result:0xffff
result:0x0002
但我无法为这个负面结果制作正则表达式。请问我可以请求您的支持吗?
PS:我试过了
syntax match error_result "\vresult:(good|0x0000)@!"
但它并没有突出显示:(冒号)之后的剩余部分。
解决方案
该模式@!
与零宽度匹配。为了突出冒号后的所有内容,我们可以.*
在模式后添加(任意数量的任意字符)以匹配行的其余部分,前提是(good|0x0000)
组不匹配。
syntax match error_result "\vresult:(good|0x0000)@!.*"
如果您只想突出显示之后 result:
的文本,但仍匹配相同的内容,请添加\zs
匹配(突出显示)应该开始的序列。例如:
syntax match error_result "\vresult:(good|0x0000)@!\zs.*"
推荐阅读
- c++ - 如何将python日志正态分布代码转换为c++代码
- python - 每次按下按钮时,为在 python gui 中创建的新窗口提供不同的名称
- python - 在 Python 中用整数清除百分比列(小数 + 整数)
- java - Powershell 不会将 .java 文件编译成 .class 文件
- cloud - 用于安排将数据库和文件/文件夹自动备份到云的基于 Web 的软件
- android - 我们可以在 iOS 设备上无线运行 Flutter 应用吗?
- powershell - 查找和替换 ”。” 特点
- excel - Excel VBA 使用哪种随机数生成器?
- css - 属于联系表 7 多步骤一部分的按钮在移动版本上无法正确显示
- php - 如何在 php 上打开具有变量(数组)名称的文件?