我正在尝试扩展python.lang
文件,以便突出显示__init__
之类的方法。我一直试图提出一个匹配所有__privateMethods()
的正则表达式。
python.lang
是一个XML文件,包含python文件的所有突出显示规则。例如:
<context id="special-variables" style-ref="special-variable">
<prefix>(?<![\w\.])</prefix>
<keyword>self</keyword>
<keyword>__name__</keyword>
<keyword>__debug__</keyword>
</context>
如何扩展它以使其与双下划线匹配?
[解决方案]:我添加到python.lang
文件中的内容(如果有人感兴趣的话):
首先,您需要在定义样式的顶部附近添加此行。
<style id="private-methods" _name="Private Methods" map-to="def:special-constant"/>
然后你将添加Carles provided in his answer:
的正则表达式<context id="private-methods" style-ref="private-methods">
<match>(__[a-zA-Z_]*(__)?)</match>
</context>
这就是你完成后的样子!
答案 0 :(得分:4)
应该是:
(__[a-zA-Z0-9_]*(__)?)
为了匹配以下所有内容:
__hello()
__init__()
__this_is_a_function()
__this_is_also_a_function__()
__a_URL2_function__()
答案 1 :(得分:1)
将之前的案例管道与以下内容(rubular example)匹配:
(^__[a-z]*__$)