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

정규 표현식은 텍스트에서 특정 패턴이나 형식을 찾기 위해 사용되는 강력한 도구입니다. 이를 통해 문자열의 매칭 여부를 확인하고, 원하는 형태로 변형할 수 있습니다. Python에서는 re 모듈을 사용하여 정규 표현식을 처리합니다.

매칭 결과 문자열 형식

매칭된 문자열의 형태를 변경하고자 할 때, re 모듈의 sub() 함수를 사용할 수 있습니다. 이 함수는 첫 번째 인자로 찾을 패턴을, 두 번째 인자로 변형할 형식을 전달합니다.

다음은 sub() 함수의 기본적인 사용 예시입니다.

import re

pattern = r'\d+'  # 1개 이상의 숫자를 찾는 패턴
text = 'I have 123 apples and 456 oranges.'

result = re.sub(pattern, 'X', text)  # 매칭된 숫자들을 'X'로 변형
print(result)

실행 결과:

I have X apples and X oranges.

위의 예시에서는 정규 표현식 \d+를 사용하여 숫자를 찾았고, 이를 ‘X’로 변형하였습니다. sub()함수는 해당 패턴을 찾아 변형을 적용한 새로운 문자열을 반환합니다.

그룹 사용하기

정규 표현식에 그룹을 사용하면 매칭된 부분을 따로 추출하거나, 그룹별로 변형을 적용할 수 있습니다.

다음은 그룹을 사용하는 예시입니다.

import re

pattern = r'(\d{2})(\d{2})(\d{4})'  # 8자리의 숫자를 그룹으로 나누는 패턴
text = 'My birthday is 19900101.'

result = re.sub(pattern, r'\3-\2-\1', text)  # 그룹을 역순으로 변형하여 '-'로 구분
print(result)

실행 결과:

My birthday is 01-01-1990.

위의 예시에서는 8자리의 숫자를 세 개의 그룹으로 나누었고, 이를 그룹별로 역순으로 변형하여 ‘-‘로 구분하였습니다. r'\3-\2-\1'에서 \3, \2, \1은 각각 첫 번째, 두 번째, 세 번째 그룹을 의미합니다.

결론

정규 표현식을 사용하여 텍스트의 패턴을 찾고 변형하는 것은 Python에서 간단하게 할 수 있는 작업입니다. re 모듈의 sub() 함수를 사용하면 원하는 형식으로 매칭된 문자열을 변형할 수 있으며, 그룹을 사용하면 변형 작업을 더욱 유연하게 할 수 있습니다.