파이썬(python)에서 정규표현식(regex)을 이용해서 문자열을 대체하는 방법이다. re 모듈의 re.sub() 함수를 이용하면 된다. 인자(argument)는 정규표현식 패턴, 대체할 문자열, 입력 문자열 순서다. 예를 들어 "abc111" 문자열에서 수자를 "X"로 대체한다면 아래와 같이 할 수 있겠다.
import re
re.sub("[0-9]", "X", "abc111")
위와 같이 하면 수자([0-9]) 세개가 모두 "X"로 대체되어 "abcXXX"가 된다. 만약 처음 일치하는 1개만 바꾸려면 아래와 같이 대체할 개수를 추가적인 인자로 지정하자.
# 1개만 대체, 결과값은 abcX11
re.sub("[0-9]", "X", "abc111", 1)
만약 대체하고자 하는 문자열에 정규표현식에서 특수한 의미로 사용되는 것이 포함되어 있을 경우가 있다. 예를 들어 문자열 마지막을 나타내는 정규식은 "$"인데 말 그대로 문자열 "$"를 뭔가 다른 것으로 대체하고 싶다면, 문자 그대로 해석하도록(escape) 역슬래시(\) 두개를 추가해 준다. 아래의 예시를 참고하자. 패턴을 지정할 때 "1$" 이렇게 하면 1로 끝나는 문자열 패턴을 의미하고, "1\\$" 이렇게 하면 "1$"를 포함하는 문자열 패턴을 의미한다.
# 문자열 1$ -> X 대체
y = re.sub("1\\$", "X", "abc11$d")
print(y)
# 출력값은 abc1Xd
# 파일명의 확장자 번경: .csv -> .txt
new_filename = re.sub("\\.csv$", ".txt", "my_file.csv")
'파이썬(python)' 카테고리의 다른 글
파이썬에서 문자열을 절반으로 나누기(중간에서 분할하기) (0) | 2025.05.04 |
---|---|
파이썬(python)에서 마크다운(markdown, md) 파일을 html 파일로 변환하기 (0) | 2025.04.30 |
파이썬(python)을 이용해서 디스코드 채널에 메시지 자동 전송 (0) | 2025.04.23 |
파이썬(python)에서 텍스트 파일을 한줄씩 읽기 (0) | 2025.04.16 |
파이썬 딕셔너리(dict) 원소의 순서 보존 여부 (0) | 2025.04.05 |