반응형
질문
내가 작성 중인 프로그램에서, 파이썬은 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')
# 출력: ['cats', 'dogs']
[x.group() for x in re.finditer( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')]
# 출력: ['all cats are', 'all dogs are']
반응형
댓글