4

python.lang強調表示されたようなメソッドを作成するようにファイルを拡張しようとしています__init__。私はすべてに一致する正規表現を考え出そうとしてきました__privateMethods()

python.lang、Pythonファイルのすべての強調表示ルールを含むXMLファイルです。元:

<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が回答で提供した正規表現を追加します。

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

そして、これがあなたが終わったときの様子です!

ここに画像の説明を入力してください

4

2 に答える 2

4

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

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

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

__hello()
__init__()
__this_is_a_function()
__this_is_also_a_function__()
__a_URL2_function__()
于 2011-02-04T21:00:17.917 に答える
1

パイプ処理された以前のケースを次のケースと一致させます(一般的な例)。

(^__[a-z]*__$)
于 2011-02-04T20:23:18.683 に答える