본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

파이썬 3.12 이상, 대괄호([]) 안에서 굳이 이스케이프가 필요 없는 문자에 백슬래시(\)를 사용하면 경고를 발생

by 3604 2026. 3. 9.
728x90

파이썬 3.12 이상에서는 대괄호([]) 안에서 굳이 이스케이프가 필요 없는 문자에 백슬래시(\)를 사용하면 경고를 발생시킵니다.

가장 깔끔하고 권장되는 수정 방법 두 가지를 제안해 드립니다.


방법 1: 로우 문자열(Raw String) 사용 (가장 권장)

문자열 앞에 r을 붙이면 백슬래시를 파이썬 문법이 아닌 정규식 엔진에 그대로 전달하라는 의미가 됩니다. 정규식 코드를 작성할 때의 표준 관례입니다.

Python
 
import re

# 문자열 앞에 r을 붙여줍니다.
dup_space = re.compile(r'[ \t]+')
dup_stop = re.compile(r'[\.]+')

방법 2: 불필요한 이스케이프 제거

사실 대괄호 [] 안에서 마침표(.)는 그 자체로 마침표를 의미합니다. (대괄호 밖에서의 .이 '모든 문자'를 뜻하는 것과 다릅니다.) 따라서 백슬래시를 아예 지워버려도 동일하게 동작하며 경고도 사라집니다.

Python
 
import re

dup_space = re.compile('[ \t]+')
dup_stop = re.compile('[.]+') # 백슬래시 제거

요약 및 비교

수정 전 (Warning 발생) 수정 후 (권장) 설명
re.compile('[\.]+') re.compile(r'[\.]+') r을 붙여 이스케이프 경고 회피
re.compile('[\.]+') re.compile('[.]+') 대괄호 내부이므로 \ 생략 가능

추천 드리는 방식은 방법 1(r 접두사 사용)입니다. 나중에 더 복잡한 정규식을 쓸 때 발생할 수 있는 잠재적인 이스케이프 오류를 원천 차단해 주기 때문입니다.

혹시 이 정규식을 사용하여 특정 텍스트를 정제(Cleaning)하는 전체 코드를 작성 중이신가요? 원하신다면 문장 부호나 공백을 더 효율적으로 처리하는 팁을 드릴 수 있습니다.

728x90