Python 정규식의 finditer 메서드
finditer 메서드는 문자열에서 정규식과
일치하는 모든 항목에 대한 반복자를 가져오는 데
사용됩니다. 메서드의 첫 번째 매개변수에는 검색할
정규식을, 두 번째 매개변수에는 검색 대상 문자열을
지정합니다. 이 메서드는 왼쪽에서 오른쪽으로 모든
일치 항목을 확인합니다. 메서드는 일치 객체의
반복자를 반환합니다. finditer 메서드의
구문은 다음과 같습니다:
re.finditer(검색할 패턴, 검색할 문자열)
문자열에서 숫자로 이루어진 모든 부분 문자열을 찾아봅시다:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
코드 실행 결과:
<callable_iterator object at 0x000002AA891300A0>
이제 이전 예제에서 얻은 객체를 값으로 하는
res 변수를 선언해 봅시다. 그런 다음
반복문으로 순회합니다:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
코드 실행 후 두 개의 match 객체가 출력됩니다:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
이 객체들은 튜플 형태로 정규식과 일치하는 모든 항목에 대한 정보를 담고 있습니다. 인덱스를 사용하여 일치 항목을 출력할 수 있습니다:
for el in res:
print(el[0])
코드 실행 결과:
'123'
'456'
다음 문자열이 주어졌습니다:
txt = '12 aaa 34 bbbb 56 ccc'
반복문을 사용하여 문자열에서 모든 숫자를 출력하세요.