[파이썬] 정규 표현식의 매칭 결과 문자열 재구성

정규 표현식은 문자열에서 특정 패턴을 찾고 추출하는데 사용되는 강력한 도구입니다. 이를 통해 문자열의 특정 패턴을 검색하고 이를 재구성하여 원하는 형태로 가공할 수 있습니다. 이번 블로그 글에서는 Python에서 정규 표현식 매칭 결과 문자열을 재구성하는 방법에 대해 알아보겠습니다.

re.sub() 함수를 사용한 매칭 결과 문자열 재구성

Python의 re 모듈은 정규 표현식을 처리하는 데 사용되는 내장 모듈입니다. re 모듈의 sub() 함수를 사용하면 매칭된 결과에 대해 문자열을 재구성할 수 있습니다. 아래는 re.sub() 함수를 사용한 예시 코드입니다.

import re

# 정규 표현식 패턴과 대체 문자열을 지정하여 매칭 결과 문자열을 재구성
result = re.sub(r'(\d{2})(\d{2})(\d{4})', r'\3-\2-\1', '20211231')
print(result)  # 출력: 2021-12-31

위 예시 코드에서는 입력 문자열 '20211231'에서 날짜 형식인 yyyymmdd 패턴을 찾고, 패턴에 일치하는 부분을 yyyy-dd-mm 형태로 재구성하고 있습니다. re.sub() 함수의 첫 번째 인자로는 정규 표현식 패턴을, 두 번째 인자로는 대체 문자열을 입력합니다. 대체 문자열 내에서 \숫자 형태로 그룹에 접근할 수 있으며, 이를 통해 재구성할 수 있습니다.

re.sub() 함수의 활용 예시

re.sub() 함수를 사용하면 다양한 용도로 문자열을 재구성할 수 있습니다. 아래는 몇 가지 예시입니다.

이메일 주소의 도메인 치환

import re

email = 'user@example.com'
new_email = re.sub(r'@example\.com$', '@example.org', email)
print(new_email)  # 출력: user@example.org

위 예시 코드에서는 이메일 주소의 도메인 부분을 .com에서 .org로 치환하고 있습니다. $ 메타 문자는 문자열의 끝을 의미하며, 이를 통해 도메인 부분만 치환합니다.

HTML 태그 제거

import re

html = '<p>This is <b>bold</b> text.</p>'
text_only = re.sub(r'<.*?>', '', html)
print(text_only)  # 출력: This is bold text.

위 예시 코드에서는 HTML 태그를 제거하여 순수한 텍스트만 남기고 있습니다. <.*?> 정규 표현식 패턴은 최소한의 길이로 임의의 HTML 태그를 찾습니다.

결론

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 재구성할 수 있습니다. re.sub() 함수를 활용하면 정규 표현식 패턴과 대체 문자열을 통해 원하는 형태로 문자열을 가공할 수 있습니다. 이는 데이터 처리 및 텍스트 조작에 유용하게 활용될 수 있습니다.