1

我正在尝试扩展在 gtksourceview-3.0 中找到的 C 语言定义,完整的原始文件可以在这里找到。我只想让一些语法规则使用正则表达式,所以我可以在 gedit 中语法高亮显示函数、类成员等内容。函数很简单,我只是用一个正则表达式为它们添加了我自己的上下文:

<context id="myfunc" style-ref="myfunc">
    <match>\w+(?=\()</match>
</context>

IE。然后我可以function()通过将样式规则应用于myfunc. 我发现做成员变量更难,例如我想给barin着色foo.bar。通常我会使用像

<match>(?<=\.)\w+</match>

但它似乎不起作用(并且它打破了其他语法突出显示规则!)。此时我被卡住了,因为我不知道这里使用的是哪种正则表达式风格,显然它不支持后视,而且我对 XML 不太了解。有什么建议么?

4

1 回答 1

1

gedit 邮件列表中的某个人回答了我,显然 XML 不喜欢这个<字符,需要替换它:

(?&lt;=...)

然后就可以了。正则表达式风格是 PCRE。

于 2014-06-26T11:15:01.293 回答