Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 정규식에서 re.compile() 메서드를 사용하는 이유는 무엇일까?

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() 등 다양한 메서드를 손쉽게 호출할 수 있습니다.