정규 표현식은 텍스트 내에서 패턴을 매칭하고 추출하는 강력한 도구입니다. 이를 통해 특정 형식이나 패턴을 가진 문자열을 찾거나 변경할 수 있습니다. Python에서는 re
모듈을 사용하여 정규 표현식을 처리할 수 있습니다.
이번 블로그 포스트에서는 Python에서 정규 표현식 매칭 결과 문자열을 변경하는 방법에 대해 알아보겠습니다.
re.sub() 함수를 사용한 문자열 변경
re.sub()
함수는 주어진 정규 표현식과 일치하는 부분 문자열을 변경할 수 있는 함수입니다. 이 함수는 세 개의 인자를 필요로 합니다.
re.sub(pattern, replacement, string)
- 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()
함수의 활용 방법을 익히고 원하는 문자열 처리를 수행해보세요!