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

정규 표현식은 문자열에서 패턴을 검색, 매칭, 추출하는데 유용한 도구입니다. 하지만 때로는 매칭된 결과를 제거하고 싶을 때도 있습니다. 이번 블로그 포스트에서는 Python에서 정규 표현식의 매칭 결과 문자열을 제거하는 방법에 대해 알아보겠습니다.

re.sub() 함수를 이용한 매칭 결과 문자열 제거

Python의 re 모듈은 정규 표현식을 다루는데 사용되는 내장 모듈입니다. re.sub() 함수를 사용하면 매칭된 결과를 다른 문자열로 대체할 수 있습니다. 매칭 결과를 제거하기 위해 아무것도 대체하지 않는 빈 문자열을 사용할 수 있습니다.

다음은 re.sub() 함수를 사용하여 매칭 결과 문자열을 제거하는 간단한 예제입니다.

import re

text = "Hello, World!"
pattern = "[oO]" # 소문자 'o' 또는 대문자 'O'에 매칭

result = re.sub(pattern, "", text)
print(result) # 출력: Hell, Wrld!

위 예제에서는 “o” 또는 “O”가 매칭된 모든 부분을 빈 문자열로 대체하여 제거했습니다. 따라서 출력 결과는 “Hell, Wrld!”가 됩니다.

re.subn() 함수를 이용한 매칭 결과 문자열 제거와 치환 횟수 카운팅

re.subn() 함수는 re.sub() 함수와 거의 동일한 기능을 수행하지만, 제거된 매칭 결과와 동시에 실제로 치환된 횟수를 반환합니다. 이를 활용하면 매칭 결과 문자열을 제거하는 동시에 얼마나 많은 매칭이 이루어졌는지 알 수 있습니다.

다음은 re.subn() 함수를 사용하여 매칭 결과 문자열을 제거하고 치환 횟수를 카운팅하는 예제입니다.

import re

text = "apple, banana, orange, apple, apple"
pattern = "apple" # "apple"에 매칭된 부분을 제거

result, count = re.subn(pattern, "", text)
print(result) # 출력: , banana, orange, ,
print(count) # 출력: 3

위 예제에서는 “apple”에 매칭된 모든 부분을 빈 문자열로 대체하여 제거했습니다. 출력 결과인 result는 “apple, banana, orange, apple, apple”에서 “apple”을 제거한 “, banana, orange, ,”가 되고, count는 “apple”이 총 3번 매칭되었음을 나타냅니다.

마치며

Python의 re 모듈을 사용하면 정규 표현식의 매칭 결과를 간편하게 제거할 수 있습니다. re.sub() 함수를 활용하여 매칭 결과 문자열을 다른 문자열로 대체하거나 빈 문자열로 제거할 수 있습니다. 또한 re.subn() 함수를 사용하면 매칭 결과 문자열의 제거와 동시에 치환 횟수를 카운팅할 수 있습니다.

여러분은 이제 Python에서 정규 표현식의 매칭 결과 문자열 제거에 대한 기본적인 개념을 이해하고 있습니다. 이를 응용하여 복잡한 텍스트 처리 작업을 수행할 수 있을 것입니다.