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

정규 표현식은 문자열에서 특정 패턴을 찾는 데 사용되는 강력하고 유용한 도구입니다. 파이썬에서는 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 이번 포스트에서는 정규 표현식의 매칭 결과 문자열을 합치는 방법에 대해 알아보겠습니다.

문자열 합치기 기본

먼저, 정규 표현식 매칭 결과를 문자열로 나타내고 이를 합치는 가장 기본적인 방법을 살펴보겠습니다. 다음은 re 모듈을 사용하여 정규 표현식 매칭을 수행하고 결과 문자열을 합치는 예제입니다.

import re

text = "Hello, my name is John. I am 27 years old."
pattern = r"\b\w+\b"  # 단어를 찾는 정규 표현식 패턴

matches = re.findall(pattern, text)
result = "".join(matches)

print(result)

위의 코드는 주어진 문장에서 단어를 찾는 정규 표현식 "\b\w+\b"을 사용합니다. re.findall() 함수를 사용하여 매칭된 모든 단어를 찾은 후, "".join() 메서드를 통해 문자열을 조합하여 결과를 얻습니다.

실행 결과는 다음과 같습니다:

HellomynameisJohnIam27yearsold

구분 문자열 추가

위의 예제에서는 단어를 그대로 이어붙였기 때문에 결과가 띄어쓰기 없이 연속된 문자열로 출력되었습니다. 이번에는 단어 사이에 구분 문자열을 추가하여 가독성을 높이는 방법을 알아보겠습니다.

import re

text = "Hello, my name is John. I am 27 years old."
pattern = r"\b\w+\b"  # 단어를 찾는 정규 표현식 패턴
delimiter = " "  # 구분 문자열

matches = re.findall(pattern, text)
result = delimiter.join(matches)

print(result)

위의 코드에서는 delimiter 변수에 구분 문자열을 지정하고, 이를 join() 메서드에 적용하여 단어들을 구분 문자열로 연결합니다.

실행 결과는 다음과 같습니다:

Hello my name is John I am 27 years old

특정 패턴 제외하기

때로는 정규 표현식 매칭 결과 중 특정 패턴을 제외하고 싶을 수 있습니다. 이를 위해 re.sub() 함수를 사용하여 특정 패턴을 다른 문자열로 대체하는 방법을 이용할 수 있습니다.

import re

text = "Hello, my name is John. I am 27 years old."
pattern = r"[,!]"  # 제외할 문자 패턴

result = re.sub(pattern, "", text)

print(result)

위의 코드에서는 [,!] 패턴을 사용하여 쉼표와 느낌표를 제외하고 모든 문자를 대체하도록 정규 표현식 패턴을 설정합니다. re.sub() 함수는 해당 패턴에 매칭되는 문자를 빈 문자열로 대체하여 결과를 반환합니다.

실행 결과는 다음과 같습니다:

Hello my name is John. I am 27 years old.

정규 표현식의 매칭 결과 문자열을 합치는 방법에 대해서 알아보았습니다. 이를 응용하여 다양한 문자열 처리 작업에 활용할 수 있습니다. 정규 표현식은 문자열 처리에서 강력한 도구이므로, 문제를 해결할 때마다 적절한 패턴을 찾아 활용해보세요!