2011-02-04 2 views
4

__init__과 같은 메서드를 만들 수 있도록 python.lang 파일을 확장하려고합니다. 나는 모든 __privateMethods()과 일치하는 정규식을 생각해 냈습니다.정규식을 두 번 밑줄 일치 시키시겠습니까?

python.lang은 파이썬 파일에 대한 모든 강조 표시 규칙을 포함하는 XML 파일입니다. 예 :

두 개의 밑줄과 일치하도록 어떻게 확장 할 수 있습니까?


[해결] : 무엇 (누구든지 관심이 있다면) 내 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 : 아니요. 실제로 두 번째 밑줄 세트와 일치시키기를 원합니다. – Kredns

+0

@ 루카스 맥코이 네 밑줄 일치를 의미합니까? – OnesimusUnbound

관련 문제