정규 표현식은 문자열 패턴을 정의하고 매칭되는 부분을 찾는 강력한 도구입니다. 이러한 매칭 결과를 변경하고 싶을 때는 어떻게 해야할까요?
Python에서는 re
모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 이 모듈에는 문자열을 변경하는 다양한 메서드가 있으며, 이를 활용하여 매칭 결과를 원하는 대로 수정할 수 있습니다.
아래는 정규 표현식의 매칭 결과를 변경하는 몇 가지 예시입니다.
1. re.sub() 메서드를 사용한 문자열 변경
re.sub()
메서드를 사용하여 매칭된 부분을 다른 문자열로 변경할 수 있습니다. 이 메서드는 다음과 같은 형식으로 사용됩니다.
re.sub(pattern, repl, string)
pattern
: 매칭 패턴을 정의하는 정규 표현식repl
: 변경될 문자열 또는 대체 함수string
: 대상 문자열
아래는 간단한 예시입니다.
import re
sentence = "I love coding"
replaced = re.sub("love", "enjoy", sentence)
print(replaced) # Output: "I enjoy coding"
위의 예시에서는 “love”라는 단어를 “enjoy”로 변경하였습니다. re.sub()
메서드는 첫 번째 매개변수로 정규 표현식 대신 단순 문자열을 사용할 수도 있습니다.
2. re.sub() 메서드와 사용자 정의 함수를 활용한 문자열 변경
re.sub()
메서드의 두 번째 매개변수로 사용자 정의 함수를 전달할 수도 있습니다. 이 함수는 매칭된 결과를 받아 처리하여 변경된 결과를 반환합니다. 아래는 예시입니다.
import re
def to_upper(match):
return match.group(0).upper()
sentence = "I love coding"
replaced = re.sub(r"\b\w+\b", to_upper, sentence)
print(replaced) # Output: "I LOVE CODING"
위의 예시에서는 정규 표현식 \b\w+\b
를 사용하여 단어를 찾고, to_upper()
함수를 통해 매칭된 단어를 대문자로 변경하였습니다.
3. re.subn() 메서드를 사용한 문자열 변경 및 매칭 횟수 카운트
re.subn()
메서드는 re.sub()
와 유사하지만, 변경된 문자열과 매칭된 횟수를 튜플로 반환합니다. 이를 활용하여 매칭 횟수를 확인할 수 있습니다.
import re
sentence = "I love coding, love coding, love coding!"
replaced, count = re.subn("love", "enjoy", sentence)
print(replaced) # Output: "I enjoy coding, enjoy coding, enjoy coding!"
print(count) # Output: 3
위의 예시에서는 “love”를 “enjoy”로 변경하고, 매칭된 횟수를 확인하였습니다. re.subn()
메서드는 (변경된문자열, 매칭횟수)
형태의 튜플을 반환합니다.
정규 표현식의 매칭 결과를 변경하는 방법에 대해 알아보았습니다. 이러한 기능을 활용하면 텍스트 처리에 유용하게 활용할 수 있습니다.