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

Python re.sub() 완벽 가이드: 정규표현식으로 문자열 검색하고 치환하기

파이썬의 re 모듈에서 정규표현식을 활용하는 가장 중요한 메서드 중 하나가 바로 sub입니다. 이 메서드를 사용하면 문자열 안에서 특정 패턴과 일치하는 부분을 찾아 다른 문자열로 손쉽게 치환할 수 있습니다.

문법(Syntax)

re.sub(pattern, repl, string, max=0)

re.sub()string 내에서 정규표현식 pattern과 일치하는 모든 부분을 repl로 교체합니다. max 값을 지정하면 해당 횟수만큼만 치환이 수행되고, 지정하지 않으면 일치하는 모든 항목이 한꺼번에 치환됩니다. 이 메서드는 수정된 새로운 문자열을 반환합니다.

예제

#!/usr/bin/python3
import re

phone = "2004-959-559 # This is Phone Number"

# 파이썬 스타일 주석(#) 삭제
num = re.sub(r'#.*$', "", phone)
print("Phone Num : ", num)

# 숫자 이외의 모든 문자 제거
num = re.sub(r'\D', "", phone)
print("Phone Num : ", num)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Phone Num : 2004-959-559
Phone Num : 2004959559

결과 해설

첫 번째 결과에서는 #.*$ 패턴이 '#' 기호부터 줄 끝까지의 모든 문자, 즉 주석 부분을 빈 문자열로 치환하여 제거했습니다. 두 번째 결과에서는 \D(숫자가 아닌 모든 문자)를 빈 문자열로 바꿔 전화번호에서 숫자만 깔끔하게 추출했습니다. 이처럼 re.sub()를 활용하면 데이터 정제 작업을 간결한 코드로 처리할 수 있습니다.