我正在尝试为 arm 汇编编写语法高亮规则,以便在 gedit 中使用。在 arm 中,每个命令都有一些可选后缀,使其有条件地执行。所以显然我希望命令本身被高亮显示,但如果它有后缀,也希望它被高亮显示。所以,我创建了一个关键字列表,如下所示:
<context id="keywords" style-ref="keyword">
<suffix>(ne)?|(cs)?|(hs)?|(cc)?|(lo)?|(mi)?|(pl)?|(vs)?|(vc)?|(hi)?|(ls)?|(ge)?|(lt)?|(gt)?|(le)?|(al)?</suffix>
<keyword>add</keyword>
....keywords....
</context>
所有列出的关键字都会突出显示。但是只有 [ANYKEYWORDHERE]ne [ANYKEYWORDHERE]cs 会突出显示。看起来它只关注前两个后缀。我做错了什么?
答案1
我无法真正解释为什么你的正则表达式不起作用。
但我发现它有点模糊且太复杂。尝试一下:
(ne|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al)?