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

Python 正则表达式匹配双下划线?,python,xml,regex,gedit,Python,Xml,Regex,Gedit,我正在尝试扩展python.lang文件,以便它能够突出显示\uuuu init\uuuu之类的方法。我一直在试图找到一个正则表达式来匹配所有的\uu privateMethods() python.lang是一个XML文件,包含python文件的所有突出显示规则。例: <context id="special-variables" style-ref="special-variable"> <prefix>(?&lt;![\w\.])</prefix

我正在尝试扩展
python.lang
文件,以便它能够突出显示
\uuuu init\uuuu
之类的方法。我一直在试图找到一个正则表达式来匹配所有的
\uu 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>
然后您将添加以下正则表达式:


(uuu[a-zA-Z_uuu]*(uuuu)?)
这是你完成任务后的样子


将您以前的案例与以下()匹配:

它应该是:

(__[a-zA-Z0-9_]*(__)?)
为了满足以下所有条件:

__hello()
__init__()
__this_is_a_function()
__this_is_also_a_function__()
__a_URL2_function__()

@米哈伊尔:我认为应该是(^uuu[a-z]+uuu$)来防止匹配。@OnesimusUnbound:不,我实际上希望它也匹配第二组下划线。@Lucas McCoy你是说匹配四个下划线?@OnesimusUnbound:我要匹配
\uu方法()
\uu方法()
,这样他的正则表达式就可以了。我将对它进行一点修改。@OnesimusUnbound:看起来不错,但当我添加
()
时,它不匹配。我不希望括号突出显示,但它需要匹配前面的所有内容。你也应该把它作为一个答案发布。谢谢,我知道了如何添加它。@Carles:我更新了我的答案,以展示如何添加它。谢谢你的帮助。@Lucas很好。。。但你最终使用了米哈伊尔的正则表达式;)@卡尔:哎呀!我复制了文件的错误部分。事实上,我最终还是用了你的@卡尔:我刚注意到一只虫子。您的解决方案与大写字母不匹配。我已经更新了我问题中的正则表达式来解决这个问题。哇!谢谢你的报告
(^__[a-z]*__$)
(__[a-zA-Z0-9_]*(__)?)
__hello()
__init__()
__this_is_a_function()
__this_is_also_a_function__()
__a_URL2_function__()