2011-01-15 8 views
186

필자가 작성한 프로그램에서 파이썬은 re.search() 함수를 사용하여 텍스트 블록에서 일치하는 것을 찾고 결과를 인쇄합니다. 그러나 텍스트 블록에서 첫 번째 일치 항목을 찾으면 프로그램이 종료됩니다.파이썬에서 모든 정규식을 어떻게 찾을 수 있습니까?

모든 일치 항목을 찾을 때까지 프로그램이 멈추지 않는 곳에서 반복적으로 어떻게합니까? 이 작업을 수행 할 별도의 함수가 있습니까?

+0

[재귀 RE] (http://web.archive.org/web/20030206032122/http://www.puffinry.freeserve.co.uk/regex-extension.html)는 다른 짐승입니다. 검색을 반복하고 싶습니다. – outis

답변

332

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

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

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

+2

'finditer'가 내가 찾고있는 곳이었습니다. 나는 Match 객체와 다른 문자열을 반환한다는 것에 놀랐다. 'match_all' 또는'match_iter' 함수를 사용하려고합니다. – dsclose

+7

면책 조항 : ** 중복되지 않는 ** ** 일치 항목은 –

+0

@ AntoineLizée입니다. 중복으로 반복을 찾으려면 어떻게해야합니까? – Raksha

관련 문제