파이썬에서 re.compile을 사용하지 않고도 정규식 매칭 시 대소문자를 구분하지 않도록 설정할 수 있습니다. 핵심은 re.IGNORECASE 플래그를 search, match, 또는 sub 함수의 flags 매개변수에 전달하는 것입니다.
주요 함수별 활용법
- re.search(): 문자열 전체에서 패턴과 일치하는 첫 번째 위치를 찾습니다.
- re.match(): 문자열의 시작 부분부터 패턴과 일치하는지 확인합니다.
- re.sub(): 패턴과 일치하는 부분을 지정한 문자열로 교체합니다.
예제 코드
import re
print(re.search('bush', 'BuSh', re.IGNORECASE))
print(re.match('bush', 'BuSh', re.IGNORECASE))
print(re.sub('bush', 'xxxx', 'Bushmeat', flags=re.IGNORECASE))
실행 결과
<_sre.SRE_Match object at 0x0000000005316648>
<_sre.SRE_Match object at 0x0000000005316648>
xxxxmeat
결과 해석
search와 match는 모두 'BuSh'라는 문자열에서 소문자 패턴 'bush'와 대소문자 구분 없이 성공적으로 매칭되어 Match 객체를 반환했습니다. 또한 sub 함수는 'Bushmeat' 문자열에서 'Bush' 부분을 'xxxx'로 치환하여 'xxxxmeat'를 출력했습니다.
추가 팁
re.IGNORECASE는 축약형인 re.I로도 사용할 수 있으며, 여러 플래그를 조합해야 할 경우 비트 OR 연산자(|)를 이용해 함께 전달할 수 있습니다. 예를 들어 re.IGNORECASE | re.MULTILINE처럼 작성하면 대소문자 무시와 멀티라인 모드를 동시에 적용할 수 있습니다.