[파이썬] 정규 표현식의 매칭 결과 문자열 변경

정규 표현식은 문자열에서 패턴을 찾는 강력한 도구입니다. 매칭된 결과를 사용자가 원하는 형식으로 변경할 수도 있습니다. 이번 글에서는 Python에서 정규 표현식의 매칭 결과 문자열을 변경하는 방법에 대해 알아보겠습니다.

re.sub() 함수를 사용한 문자열 변경

Python에서는 re 모듈을 통해 정규 표현식을 사용할 수 있습니다. re 모듈의 sub() 함수를 사용하면 매칭된 문자열을 다른 문자열로 변경할 수 있습니다.

다음은 re.sub() 함수를 사용하여 정규 표현식에 매칭되는 문자열을 변경하는 예제입니다.

import re

string = "Hello, my name is John!"
pattern = r"John"
replacement = "Mike"

new_string = re.sub(pattern, replacement, string)
print(new_string)  # Output: "Hello, my name is Mike!"

위의 예제에서는 pattern 변수에 “John”이라는 정규 표현식 패턴을 설정하였습니다. replacement 변수에는 변경하고자 하는 문자열인 “Mike”를 설정합니다. 그리고 re.sub() 함수를 사용하여 string 변수에서 pattern과 일치하는 문자열을 replacement으로 변경한 new_string을 생성합니다.

정규 표현식 그룹 사용하기

정규 표현식은 그룹을 사용하여 매칭된 부분을 따로 추출할 수 있습니다. 이를 활용하여 매칭된 부분을 다른 형식의 문자열로 변경할 수 있습니다.

다음은 정규 표현식의 그룹을 사용하여 매칭된 부분을 변경하는 예제입니다.

import re

string = "My phone number is 123-456-7890."
pattern = r"(\d{3})-(\d{3})-(\d{4})"
replacement = r"(\1) \2-\3"

new_string = re.sub(pattern, replacement, string)
print(new_string)  # Output: "My phone number is (123) 456-7890."

위의 예제에서는 pattern 변수에 전화번호 형식인 “(\d{3})-(\d{3})-(\d{4})”라는 정규 표현식 패턴을 설정하였습니다. 이 패턴은 세 자리 숫자, 하이픈, 세 자리 숫자, 하이픈, 네 자리 숫자를 나타냅니다. replacement 변수에는 그룹을 사용하여 변경하고자 하는 문자열인 “(\1) \2-\3”을 설정합니다. 여기서 \1, \2, \3은 각 각 첫 번째 그룹, 두 번째 그룹, 세 번째 그룹을 나타냅니다. 즉, 전화번호를 “(123) 456-7890” 형식으로 변경합니다.

위의 예제에서는 re.sub() 함수를 사용하여 pattern과 일치하는 문자열을 replacement으로 변경하였습니다. 변경된 문자열은 new_string 변수에 저장되고, 이를 출력합니다.

결론

Python의 re 모듈을 사용하면 정규 표현식의 매칭 결과 문자열을 변경할 수 있습니다. re.sub() 함수를 사용하여 문자열을 변경하는 방법을 배웠습니다. 그룹을 이용하여 매칭된 부분을 다른 형식의 문자열로 변경할 수도 있습니다. 이를 활용하면 다양한 문자열을 손쉽게 변경할 수 있습니다.

정규 표현식은 많은 프로그래밍 언어에서 지원하며, 강력하고 유연한 문자열 처리 도구입니다. 정규 표현식을 잘 활용하면 문자열 처리 작업을 보다 효율적으로 할 수 있습니다.