正则表达式匹配双下划线?

时间:2011-02-04 20:17:41

标签: python xml regex gedit

我正在尝试扩展python.lang文件,以便突出显示__init__之类的方法。我一直试图提出一个匹配所有__privateMethods()的正则表达式。

python.lang是一个XML文件,包含python文件的所有突出显示规则。例如:

<context id="special-variables" style-ref="special-variable">
   <prefix>(?&lt;![\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>

这就是你完成后的样子!

enter image description here

2 个答案:

答案 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]*__$)