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

정규 표현식은 문자열 패턴 매칭을 위해 사용되는 강력한 도구입니다. 매칭된 패턴을 치환하는 기능은 특히 유용합니다. Python의 re 모듈은 정규 표현식을 지원하며, 매칭된 결과를 다른 문자열로 치환하는 기능을 제공합니다.

re.sub() 함수를 사용한 문자열 치환

Python에서 정규 표현식의 매칭 결과를 문자열로 치환하기 위해 re.sub() 함수를 사용할 수 있습니다. 이 함수는 다음과 같은 형식을 가지고 있습니다:

re.sub(pattern, replacement, string)

아래 예제를 통해 re.sub() 함수를 사용한 문자열 치환을 살펴봅시다.

import re

text = "Hello, there! How are you?"
pattern = r"[aeiou]"
replacement = "*"

result = re.sub(pattern, replacement, text)
print(result)

위 코드는 모음([aeiou])을 * 문자로 치환하는 예제입니다. 실행 결과는 다음과 같습니다:

H\*ll\*, th\*r\*! H\*w \*r\* y\*u?

그룹을 활용한 동적 치환

정규 표현식의 그룹 기능을 활용하면 동적으로 문자열을 치환할 수 있습니다. 그룹은 괄호(())를 사용하여 표현하며, re.sub() 함수의 replacement 인자에서 \g<그룹번호> 형식으로 참조할 수 있습니다.

아래 예제는 앞뒤 두 개의 글자가 같은 단어를 찾아 첫번째 글자를 대문자로 바꾸는 예제입니다.

import re

text = "hello there, how are you? pretty good!"
pattern = r"(\b\w)\w\1"
replacement = lambda match: match.group(0).capitalize()

result = re.sub(pattern, replacement, text)
print(result)

위 코드는 정규 표현식 (\b\w)\w\1를 사용하여 앞뒤 두 개의 글자가 같은 단어를 찾고, lambda 함수를 사용하여 첫번째 글자를 대문자로 변경합니다. 실행 결과는 다음과 같습니다:

Hello there, how are you? Pretty good!

결론

Python의 re 모듈을 사용하면 정규 표현식의 매칭 결과를 효과적으로 문자열로 치환할 수 있습니다. re.sub() 함수를 활용하여 정교한 문자열 패턴 매칭 및 치환 작업을 수행할 수 있습니다. 정규 표현식은 문자열 처리 작업에 매우 유용한 도구이므로, 숙련된 정규 표현식 패턴 작성 및 치환 기술은 프로그래머에게 큰 도움이 될 것입니다.