我正在尝试编写一个 GtkSourceView 语言文件来突出显示我在 gedit 中的一些文件。我遇到的问题是我想突出显示至少包含前四个字符并且拼写正确的单词。为了说明,假设我有四种模式:
variable
vari
variab
variabel
我想识别前三个,但不是第四个,因为前三个都是目标“变量”的正确拼写的子字符串。完成工作的是使用
\bvari(a|ab|abl|able)?\b
但这可能会因较长的单词而变得非常乏味。所以在一个完整的语言文件中,它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<language id="foo" _name="foo" version="2.0" _section="Other">
<metadata>
<property name="mimetypes">text/x-foo</property>
<property name="globs">*.foo</property>
</metadata>
<styles>
<style id="keyword" _name="Keyword" map-to="def:keyword"/>
</styles>
<default-regex-options case-sensitive="false"/>
<definitions>
<context id="foo">
<include>
<context id="keyword" style-ref="keyword">
<keyword>\bvari(a|ab|abl|able)\b</keyword>
</context>
</include>
</context>
</definitions>
</language>
我无法找到解决方案 - 因为我对正则表达式非常不熟悉,也不知道这个问题的正确措辞。这个问题有简单有效的解决方案吗?