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

정규 표현식은 문자열에서 패턴을 찾거나 검색하기 위해 사용되는 강력한 도구입니다. 매칭이 성공했을 때, 정규 표현식은 문자열 일부 또는 전체를 반환합니다. 이것을 이용하여 매칭된 결과를 합쳐서 원하는 형태로 가공할 수 있습니다.

Python은 내장된 re 모듈을 제공하여 정규 표현식을 손쉽게 사용할 수 있습니다. re 모듈에는 매칭 결과를 합치기 위해 사용할 수 있는 여러 가지 방법이 있습니다.

디모닛, 모두 함께 실습을 통해 정규 표현식의 매칭 결과 문자열 합치기에 대해 자세히 알아보겠습니다.

문자열 합치기 방법

1. re.findall()str.join()

re.findall() 함수는 정규 표현식이 매칭되는 모든 부분을 리스트로 반환합니다. 이를 활용하여 매칭 결과를 리스트로 받고, str.join() 함수를 사용해 리스트의 문자열들을 하나로 연결할 수 있습니다.

다음은 이러한 방법을 사용한 예시 코드입니다:

import re

# 입력 문자열과 정규 표현식 패턴
input_string = "The quick brown fox jumps over the lazy dog."
pattern = r"\b\w{3}\b"

# 패턴에 매칭되는 모든 단어들을 합치기
matched_words = re.findall(pattern, input_string)
combined_string = " ".join(matched_words)

print(combined_string)

위 코드에서 re.findall() 함수를 사용하여 패턴 r"\b\w{3}\b"가 매칭되는 모든 단어들을 리스트로 받습니다. 그런 다음, str.join() 함수를 사용하여 리스트의 문자열들을 공백으로 구분되는 하나의 문자열로 합칩니다. 결과는 “The fox the dog”가 됩니다.

2. 반복문을 통한 합치기

때로는 re.findall() 함수를 사용하는 것보다 반복문을 통해 매칭 결과를 합치는 것이 더 적합할 수 있습니다. 이를 활용하여 매칭 결과를 하나씩 반복하며 필요한 가공을 수행할 수 있습니다.

예시 코드를 통해 이 방법을 확인해보겠습니다:

import re

# 입력 문자열과 정규 표현식 패턴
input_string = "The quick brown fox jumps over the lazy dog."
pattern = r"\b\w{3}\b"

# 패턴에 매칭되는 모든 단어들을 합치기
combined_string = ""
for match in re.finditer(pattern, input_string):
    combined_string += match.group() + " "

print(combined_string.strip())

위 코드에서는 re.finditer() 함수를 사용하여 패턴 r"\b\w{3}\b"가 매칭되는 모든 단어들을 반복합니다. match.group() 함수를 사용하여 매칭된 단어를 가져오고, 필요한 가공을 수행한 후 문자열에 추가합니다. 마지막으로, strip() 함수를 사용하여 문자열 양쪽의 공백을 없애줍니다. 결과는 “The fox the dog”가 됩니다.

마무리

정규 표현식의 매칭 결과 문자열 합치기는 Python의 re 모듈을 사용하여 간단하게 수행할 수 있습니다. re.findall()str.join() 함수를 사용하거나 반복문을 활용하여 매칭 결과를 원하는 형태로 조합할 수 있습니다. 이러한 방법을 사용하면 정규 표현식을 효과적으로 활용하여 문자열 처리 작업을 수행할 수 있습니다.

참고 코드

import re

input_string = "The quick brown fox jumps over the lazy dog."
pattern = r"\b\w{3}\b"

matched_words = re.findall(pattern, input_string)
combined_string = " ".join(matched_words)

print(combined_string)
import re

input_string = "The quick brown fox jumps over the lazy dog."
pattern = r"\b\w{3}\b"

combined_string = ""
for match in re.finditer(pattern, input_string):
    combined_string += match.group() + " "

print(combined_string.strip())

결과

The fox the dog

이상으로 정규 표현식의 매칭 결과 문자열 합치기에 대한 글을 마치겠습니다. 편리한 정규 표현식 사용을 통해 문자열 처리 작업을 보다 간편하고 효율적으로 수행할 수 있습니다. 즐거운 코딩 되세요!