[python] 파이썬에서 컴파일 된 정규식 패턴에서 패턴 문자열을 어떻게 얻을 수 있습니까?
다음과 같은 코드가 있습니다.
>>> import re
>>> p = re.compile('my pattern')
>>> print p
_sre.SRE_Pattern object at 0x02274380
변수 "my pattern"
에서 문자열을 가져올 수 p
있습니까?
답변
p.pattern
re 모듈에 대한 자세한 내용은
http://docs.python.org/library/re.html을 참조하십시오.
답변
모듈 문서 의 “정규 표현식 객체” 섹션에서 re
:
RegexObject.pattern
RE 개체가 컴파일 된 패턴 문자열입니다.
예를 들면 :
>>> import re
>>> p = re.compile('my pattern')
>>> p
<_sre.SRE_Pattern object at 0x1001ba818>
>>> p.pattern
'my pattern'
re
Python 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']
답변
예:
print p.pattern
힌트, dir
python 의 함수를 사용하여 멤버 목록을 얻으십시오.
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']