[python] 파이썬에서 정규 표현식과 일치하는 모든 것을 어떻게 찾을 수 있습니까?

내가 쓰고있는 프로그램에서 파이썬은 re.search()함수를 사용하여 텍스트 블록에서 일치하는 것을 찾고 결과를 인쇄하게합니다. 그러나 텍스트 블록에서 첫 번째 일치 항목을 찾으면 프로그램이 종료됩니다.

모든 일치 항목을 찾을 때까지 프로그램이 중지되지 않는 경우이 작업을 반복적으로 수행하려면 어떻게합니까? 이를 위해 별도의 기능이 있습니까?



답변

re.findall또는 re.finditer대신 사용하십시오 .

re.findall(pattern, string) 일치하는 문자열 목록을 반환합니다.

re.finditer(pattern, string)MatchObject객체에 대한 반복자를 반환 합니다.

예:

re.findall( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')
# Output: ['cats', 'dogs']

[x.group() for x in re.finditer( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')]
# Output: ['all cats are', 'all dogs are']


답변