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

정규 표현식(Regular Expressions)은 문자열에서 특정 패턴을 찾고 매칭되는 결과를 돌려주는 강력한 도구입니다. 이번 블로그에서는 Python에서 정규 표현식을 사용하여 매칭된 결과 문자열을 변경하는 방법에 대해 알아보겠습니다.

re.sub() 함수를 이용한 매칭 결과 변경

Python의 re 모듈은 정규 표현식을 사용하기 위한 다양한 함수를 제공합니다. 그 중에서도 re.sub() 함수를 이용하면 매칭된 결과 문자열을 효과적으로 변경할 수 있습니다.

re.sub() 함수는 아래와 같은 형식으로 사용됩니다.

re.sub(pattern, repl, string, count=0, flags=0)

예제 코드

다음은 예시 문자열에서 정규 표현식을 사용하여 숫자를 찾고 해당 숫자를 특정 문자열로 변경하는 예제 코드입니다.

import re

text = "Today is 2022-07-25."
pattern = r"\d{4}-\d{2}-\d{2}"
replace_with = "YYYY/MM/DD"

modified_text = re.sub(pattern, replace_with, text)
print(modified_text)

위 코드의 실행 결과는 다음과 같습니다.

Today is YYYY/MM/DD.

위 예제에서는 "2022-07-25"라는 날짜 형식을 "YYYY/MM/DD"로 변경하였습니다.

대체 함수 사용하기

repl 인자에는 변경하고자 하는 문자열뿐만 아니라 대체 함수도 전달할 수 있습니다. 대체 함수를 사용하면 매칭된 문자열을 동적으로 변경할 수 있습니다.

아래 예제 코드에서는 매칭된 숫자를 제곱하여 변경하는 대체 함수를 사용합니다.

import re

def square(match):
    num = int(match.group())
    return str(num**2)

text = "The numbers are 1, 2, 3, and 4."
pattern = r"\d+"

modified_text = re.sub(pattern, square, text)
print(modified_text)

실행 결과는 다음과 같습니다.

The numbers are 1, 4, 9, and 16.

위 예제에서는 숫자 "1", "2", "3", "4"를 각각 제곱하여 변경하였습니다.

결론

Python의 re.sub() 함수를 이용하면 정규 표현식을 사용하여 문자열에서 특정 패턴을 찾고, 해당 패턴을 보다 효율적으로 변경할 수 있습니다. 이를 통해 문자열 처리 및 데이터 가공 작업에 유용하게 활용할 수 있습니다.