re.compile() 메서드란?
re.compile(pattern)은 정규식 패턴을 미리 컴파일하여 패턴 객체(pattern object)로 만들어 주는 메서드입니다. 이렇게 생성된 패턴 객체는 문자열 매칭에 반복적으로 재사용할 수 있으며, 같은 패턴을 여러 번 사용할 때마다 일일이 다시 작성할 필요가 없어 코드가 간결해지고 실행 성능도 향상됩니다.
특히 동일한 정규식을 여러 문자열에 적용해야 하는 경우, 패턴을 한 번만 컴파일해 두면 매번 컴파일하는 오버헤드를 줄일 수 있어 효율적입니다.
사용 예제
import re
# 'TP' 패턴을 컴파일하여 패턴 객체 생성
pattern = re.compile('TP')
result = pattern.findall('TP Tutorialspoint TP')
print(result)
result2 = pattern.findall('TP is most popular tutorials site of India')
print(result2)실행 결과
['TP', 'TP'] ['TP']
코드 설명
위 예제에서 re.compile('TP')는 'TP'라는 패턴을 담은 객체를 생성합니다. 이후 findall() 메서드를 호출하면 대상 문자열에서 해당 패턴과 일치하는 모든 부분을 리스트 형태로 반환합니다.
- 첫 번째 문자열
'TP Tutorialspoint TP'에는 'TP'가 두 번 등장하므로['TP', 'TP']가 출력됩니다. - 두 번째 문자열에는 'TP'가 한 번만 등장하므로
['TP']가 출력됩니다.
re.compile()을 사용하는 주요 이유
- 성능 향상: 패턴을 한 번만 컴파일하므로 반복 사용 시 불필요한 컴파일 비용이 사라집니다.
- 코드 가독성: 패턴 객체를 변수에 저장해 두면 의미를 명확하게 드러낼 수 있습니다.
- 재사용성: 하나의 패턴 객체로
findall(),search(),match(),sub()등 다양한 메서드를 손쉽게 호출할 수 있습니다.