정규 표현식은 문자열에서 패턴을 찾거나 매치하는 강력한 도구입니다. 매칭을 통해 찾은 패턴을 원하는 형태로 변환하는 작업은 자주 수행되는 일 중 하나입니다. 이를 문자열 치환이라고 합니다.
Python에서는 re
모듈을 사용하여 정규 표현식을 처리하고, re.sub()
함수를 이용하여 매칭 결과의 문자열을 치환할 수 있습니다. re.sub()
함수는 패턴에 매칭된 부분을 다른 문자열로 치환하여 반환합니다.
다음은 정규 표현식의 매칭 결과 문자열 치환을 위한 기본적인 사용법입니다:
import re
# 정규 표현식 패턴을 정의합니다. (예: 'apple')
pattern = r'apple'
# 문자열에서 패턴에 매칭되는 부분을 'orange'로 치환합니다.
result = re.sub(pattern, 'orange', 'I have an apple.')
print(result) # 출력: I have an orange.
위 예제에서는 'I have an apple.'
이라는 문자열에서 'apple'
이라는 패턴을 찾아 'orange'
로 치환했습니다. 따라서 출력 결과는 'I have an orange.'
이 됩니다.
또한, 정규 표현식을 사용하여 매칭된 부분을 동적으로 치환할 수도 있습니다. 이를 위해서는 패턴으로부터 매칭 결과를 그룹으로 묶어야 합니다. 그룹은 괄호 ( )
를 사용하여 표현할 수 있습니다. re.sub()
함수의 두 번째 인자로 치환하는 부분에서 \g<그룹번호>
를 사용하여 매칭된 그룹을 참조할 수 있습니다.
다음은 매칭된 그룹을 사용하여 정규 표현식의 매칭 결과 문자열을 치환하는 예제입니다:
import re
# 정규 표현식 패턴에서 그룹을 정의합니다. (예: '(\d+)-(\d+)-(\d+)')
pattern = r'(\d+)-(\d+)-(\d+)'
# 문자열에서 패턴에 매칭되는 부분을 'Year: \g<1>, Month: \g<2>, Day: \g<3>'으로 치환합니다.
result = re.sub(pattern, r'Year: \g<1>, Month: \g<2>, Day: \g<3>', 'Date: 2022-01-01')
print(result) # 출력: Date: Year: 2022, Month: 01, Day: 01
위 예제에서는 'Date: 2022-01-01'
이라는 문자열에서 (\d+)-(\d+)-(\d+)
패턴을 찾아 Year: \g<1>, Month: \g<2>, Day: \g<3>
형식으로 치환했습니다. 따라서 출력 결과는 'Date: Year: 2022, Month: 01, Day: 01'
이 됩니다.
이와 같이 정규 표현식의 매칭 결과 문자열 치환은 Python에서 간단하게 처리할 수 있습니다. 정규 표현식을 잘 활용하여 문자열을 원하는 형태로 변환하는 작업을 효과적으로 수행해보세요.