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

정규 표현식은 텍스트 내에서 패턴을 매칭하고 추출하는 강력한 도구입니다. 이를 통해 특정 형식이나 패턴을 가진 문자열을 찾거나 변경할 수 있습니다. Python에서는 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다.

이번 블로그 포스트에서는 Python에서 정규 표현식 매칭 결과 문자열을 변경하는 방법에 대해 알아보겠습니다.

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

re.sub() 함수는 주어진 정규 표현식과 일치하는 부분 문자열을 변경할 수 있는 함수입니다. 이 함수는 세 개의 인자를 필요로 합니다.

re.sub(pattern, replacement, string)

간단한 예제를 통해 re.sub() 함수를 살펴보겠습니다.

import re

text = "Hello, World!"
new_text = re.sub(r"Hello", "Hi", text)
print(new_text)

위의 코드는 “Hello, World!”라는 문자열에서 “Hello”를 찾아 “Hi”로 변경하는 예제입니다. 실행 결과로 “Hi, World!”가 출력될 것입니다.

그룹을 활용한 문자열 변경

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

import re

text = "Name: John, Age: 25"
new_text = re.sub(r"Name: (\w+), Age: (\d+)", r"Full Name: \1, Years Old: \2", text)
print(new_text)

위의 코드는 “Name: John, Age: 25”라는 문자열에서 이름과 나이를 추출해 “Full Name: John, Years Old: 25”로 변경하는 예제입니다. \1\2는 각각 첫 번째와 두 번째 그룹을 나타냅니다.

함수를 활용한 문자열 변경

re.sub() 함수의 세 번째 인자로 함수를 전달하여 동적으로 매칭된 문자열을 변경할 수도 있습니다. 이를 통해 더 복잡한 문자열 처리를 할 수 있습니다.

import re

text = "I have 3 apples and 5 oranges."
new_text = re.sub(r"\d+", lambda x: str(int(x.group()) * 2), text)
print(new_text)

위의 코드는 “I have 3 apples and 5 oranges.”라는 문자열에서 숫자를 찾아 두 배로 변경하는 예제입니다. 실행 결과로 “I have 6 apples and 10 oranges.”가 출력될 것입니다. 이때 lambda 함수를 사용하여 각 매칭된 숫자에 대해 변환을 수행합니다.

결론

Python의 re.sub() 함수를 사용하면 정규 표현식으로 매칭된 문자열을 쉽게 변경할 수 있습니다. 이를 통해 문자열을 원하는 형태로 가공하거나 특정 패턴을 다른 문자열로 대체할 수 있습니다. 다양한 예제와 함께 re.sub() 함수의 활용 방법을 익히고 원하는 문자열 처리를 수행해보세요!