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

정규 표현식은 텍스트에서 패턴을 찾고 매칭을 수행하는 강력한 도구입니다. 하지만 때로는 매칭 결과 문자열을 특정한 형식으로 변환하는 필요가 있을 수 있습니다.

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 변환하는 방법을 알아보겠습니다.

1. re.sub() 함수로 문자열 변환하기

re.sub() 함수는 주어진 패턴에 매칭되는 모든 부분을 다른 문자열로 치환하는 역할을 합니다. 이를 통해 정규 표현식의 매칭 결과 문자열을 변환할 수 있습니다.

다음은 re.sub() 함수를 사용하여 특정 패턴에 매칭되는 문자열을 다른 문자열로 변환하는 예시 코드입니다.

import re

pattern = r'apple'
text = 'I have an apple'

result = re.sub(pattern, 'banana', text)
print(result)

위 코드에서는 ‘apple’이라는 패턴과 일치하는 부분을 ‘banana’로 치환합니다. 결과적으로 출력되는 문자열은 ‘I have an banana’가 됩니다.

2. 치환 함수 사용하기

re.sub() 함수의 두 번째 매개변수로 문자열 대신 치환 함수를 사용할 수도 있습니다. 이 경우 치환 함수는 매칭 결과 객체를 입력으로 받아 처리하고, 변환된 결과 문자열을 반환합니다.

다음은 치환 함수를 사용하여 매칭 결과를 변환하는 예시 코드입니다.

import re

def convert(match):
    return match.group(0).upper()

pattern = r'\b\w+\b'
text = 'hello world'

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

위 코드에서는 \b\w+\b 패턴과 일치하는 단어들을 대문자로 변환합니다. 결과적으로 출력되는 문자열은 ‘HELLO WORLD’가 됩니다.

3. 백스페이스 문자 사용하기

정규 표현식의 매칭 결과를 변환할 때, 백스페이스 문자 \b를 사용하여 특정 문자를 제거할 수도 있습니다. 이를 통해 입력된 문자열에서 특정 패턴을 삭제하는 기능을 구현할 수 있습니다.

다음은 백스페이스 문자를 사용하여 특정 패턴을 삭제하는 예시 코드입니다.

import re

pattern = r'apple\b'
text = 'I have an apple and a pineapple'

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

위 코드에서는 apple 패턴 뒤에 위치한 백스페이스 문자 \b를 사용하여 ‘apple’ 단어만 제거합니다. 결과적으로 출력되는 문자열은 ‘I have an and a pineapple’가 됩니다.

마무리

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 변환하는 방법을 알아보았습니다. re.sub() 함수와 치환 함수를 활용하면 텍스트 처리 작업에서 유용하게 사용할 수 있습니다. 정규 표현식을 응용하여 문자열을 변환하는 다양한 기능을 구현해보세요!