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
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| 클로드 코워크 vs 쿠세 코워크 vs 오픈클로: 완전한 오픈소스 가이드 (0) | 2026.03.10 |
|---|---|
| 파이썬 "Traceback (most recent call last): File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'torch'" 오류 해결 방법 (0) | 2026.03.09 |
| 명령어 "cat << EOF > user.yaml" 의미 (0) | 2026.03.09 |
| 다운로드 정보 (0) | 2026.03.09 |
| 블록체인과 LLM(대형 언어 모델)을 결합 (0) | 2026.03.09 |