Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사용할 수 있는 re.findall() 및 re.finditer() 메서드의 차이점은 무엇입니까?

<시간/>

re.findall() 메서드

re.findall()은 일치하는 모든 패턴의 목록을 가져오는 데 도움이 됩니다. 주어진 문자열의 시작 또는 끝에서 검색합니다. findall 메소드를 사용하여 주어진 문자열에서 패턴을 검색하면 패턴의 모든 항목을 반환합니다. 패턴을 검색할 때 항상 re.findall()을 사용하는 것이 좋습니다. re.search() 및 re.match() 둘 다처럼 작동합니다.

예시

import re result = re.search(r'TP', 'TP Tutorials Point TP')

print result.group()

출력

TP

re.finditer() 메서드

re.finditer(패턴, 문자열, 플래그=0)

문자열의 RE 패턴에 대해 겹치지 않는 모든 일치 항목에 대해 MatchObject 인스턴스를 생성하는 반복자를 반환합니다. 문자열은 왼쪽에서 오른쪽으로 스캔되고 일치 항목은 찾은 순서대로 반환됩니다. 결과에 빈 일치 항목이 포함됩니다.

다음 코드는 Python 정규식에서 re.finditer() 메서드를 사용하는 방법을 보여줍니다.

예시

import re s1 = 'Blue Berries'
pattern = 'Blue Berries'
for match in re.finditer(pattern, s1):
    s = match.start()
    e = match.end()
    print 'String match "%s" at %d:%d' % (s1[s:e], s, e)

출력

Strings match "Blue Berries" at 0:12