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