파이썬에서 컴파일 된 정규식 패턴에서 패턴 문자열을 어떻게 얻을 수 있습니까?


87

다음과 같은 코드가 있습니다.

>>> import re
>>> p = re.compile('my pattern')
>>> print p
_sre.SRE_Pattern object at 0x02274380

변수 "my pattern"에서 문자열을 가져올 수 p있습니까?

답변:


108
p.pattern

re 모듈에 대한 자세한 내용은 http://docs.python.org/library/re.html을 참조하십시오.


7
감사. 나는 dir (p) 시도하기 때문에 문서를 읽지 않으며 몇 가지 속성과 메서드 만 표시합니다. stackoverflow.com/questions/1415924/…
Mykola Kharechko

나는, 같은했다 :)를 얻을 수있는 간단한 방법이 없었다 가정
Anentropic

1
python3의 디렉토리 (some_compiled_pattern) 디스플레이 속성처럼 보인다, 그러나 2.7
데이비드 램

10
> 이러한 질문을 게시하기 전에 문서를 읽어 보는 것은 어떨까요? Google StackOverflow가 먼저 반환되기 때문입니다. 완벽하게 유효한 질문입니다.
Aaron

21

모듈 문서 의 "정규 표현식 객체" 섹션에서 re:

RegexObject.pattern

RE 개체가 컴파일 된 패턴 문자열입니다.

예를 들면 :

>>> import re
>>> p = re.compile('my pattern')
>>> p
<_sre.SRE_Pattern object at 0x1001ba818>
>>> p.pattern
'my pattern'

rePython 3.0 이상의 모듈을 사용하면 다음 과 같이 간단하게 찾을 수 있습니다 dir(p).

>>> print(dir(p))
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__',
'__str__', '__subclasshook__', 'findall', 'finditer', 'flags',
'groupindex', 'groups', 'match', 'pattern', 'scanner', 'search',
'split', 'sub', 'subn']

그러나 이것은 Python 2.6 (또는 2.5)에서 작동 하지 않습니다 . dir명령이 완벽하지 않으므로 항상 문서를 확인할 가치가 있습니다!

>>> print dir(p)
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner',
'search', 'split', 'sub', 'subn']

9

예:

print p.pattern

힌트, dirpython 의 함수를 사용하여 멤버 목록을 얻으십시오.

dir(p)

이 목록 :

['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__',
'__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'findall', 'finditer', 'flags', 'groupindex', 'groups', 'match', 'pattern',
'scanner', 'search', 'split', 'sub', 'subn']

3
help( value )콘솔에서 훨씬 더 유용합니다.
Jochen Ritzel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.