2011-02-04 12 views
4

python.langファイルを拡張して、__init__のようなメソッドを強調表示しようとしています。私はすべて__privateMethods()にマッチする正規表現を考え出そうとしています。正規表現をダブルアンダースコアに一致させるには?

python.langは、pythonファイルのすべての強調表示規則を含むXMLファイルです。例:

これを2倍のアンダースコアに一致させるにはどうすればよいですか?


[SOLUTION]:何(誰もが興味を持っている場合)、私は私のpython.langファイルに追加:

まず第一に、あなたはスタイルが定義されている上部付近にこの行を追加する必要があります。

<context id="private-methods" style-ref="private-methods"> 
    <match>(__[a-zA-Z_]*(__)?)</match> 
</context> 

そして、ここであなたが終わったときに、それは次のようになります。

<style id="private-methods" _name="Private Methods" map-to="def:special-constant"/> 

次に、あなたはCarles provided in his answerはという正規表現を追加します!

enter image description here

+0

woow!報告書をありがとう – eyquem

答えて

4

むしろ、次のようになります。

(__[a-zA-Z0-9_]*(__)?) 

次のすべてに一致させるために:

__hello() 
__init__() 
__this_is_a_function() 
__this_is_also_a_function__() 
__a_URL2_function__() 
+0

ありがとうございましたそれを追加します。 – Kredns

+0

素晴らしい、私たちを見せて! –

+0

@Carles:どのように追加できるかを示すために答えを更新しました。あなたのすべての協力に感謝します。 – Kredns

1

あなたの前のケースにマッチ(rubular example)以下でパイプ:

(^__[a-z]*__$) 
+0

@Mikhail ____とのマッチングを防ぐには(^ __ [a-z] + __ $)すべきだと思います。 – OnesimusUnbound

+0

@OnesimusUnbound:いいえ実際には2番目のアンダースコアのセットと一致させたいと思います。 – Kredns

+0

@ルーカスマッコイとは、4つのアンダースコアのマッチングを意味しますか? – OnesimusUnbound

関連する問題