[파이썬] 정규 표현식의 매칭 결과 문자열 형식
정규 표현식은 텍스트에서 특정 패턴이나 형식을 찾기 위해 사용되는 강력한 도구입니다. 이를 통해 문자열의 매칭 여부를 확인하고, 원하는 형태로 변형할 수 있습니다. 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()
함수를 사용하면 원하는 형식으로 매칭된 문자열을 변형할 수 있으며, 그룹을 사용하면 변형 작업을 더욱 유연하게 할 수 있습니다.