我正在尝试创建一个vim语法文件(实际上对于gvim,但它们应该非常相似),但是我的一个匹配组与它应该的不匹配。
我需要匹配文字" nop"或者" NOP"把它弄出来。 我是怎么做到的:
syn match nopkw 'nop|NOP'
根据我自己的知识,(更重要的是)regex101.com,这应该与文字" nop"或者" NOP"。稍后在我的文件中我使用
highlight nopkw guifg=#d3d3d3
如果我是正确的,这应该使所有" nop"浅灰色。但事实并非如此。 我的文件中有其他匹配正常的匹配,例如数字:
syn match num '\d+'
highlight num guifg=#ff0000
这正如预期的那样正常。为什么" nop"正则表达式不起作用,你能找到一个吗?
谢谢。答案 0 :(得分:2)
谢天谢地,答案很简单。你需要逃离吧,因为它是'或'。试试这个:
syn match nopkw 'nop\|NOP'
或者,另一种选择是使用magic option。这看起来像这样:
syn match nopkw '\vnop|NOP'