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

정규 표현식은 문자열에서 특정 패턴을 찾고 분리하는 데 매우 유용한 도구입니다. Python의 re 모듈은 정규 표현식을 사용하여 문자열을 매칭하고 분리하는 다양한 기능을 제공합니다.

이 포스트에서는 Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과를 문자열로 분리하는 방법을 알아보겠습니다.

1. re.match() 메서드를 사용하여 매칭 결과 분리하기

re.match() 메서드를 사용하여 문자열의 처음부터 정규 표현식에 매칭되는 부분을 찾을 수 있습니다. 매칭된 결과는 Match 객체로 반환되며, 이 객체를 사용하여 매칭된 문자열을 분리할 수 있습니다.

import re

pattern = r'(\w+)\s+(\w+)'
text = 'Hello World'

match = re.match(pattern, text)
if match:
    word1 = match.group(1)
    word2 = match.group(2)
    print(f'Word 1: {word1}')  # Output: Word 1: Hello
    print(f'Word 2: {word2}')  # Output: Word 2: World

위의 예제에서는 정규 표현식 (\w+)\s+(\w+)을 사용하여 문자열 Hello World를 매칭합니다. 이후 group() 메서드를 사용하여 매칭된 문자열을 분리하고 출력합니다.

2. re.split() 메서드를 사용하여 매칭 결과 분리하기

re.split() 메서드를 사용하면 문자열을 정규 표현식에 따라 분리할 수 있습니다. re.split()은 매칭된 문자열을 구분자로 사용하여 문자열을 분리한 후 분리된 부분들을 자동으로 리스트로 반환합니다.

import re

pattern = r'\s'
text = 'Hello World'

results = re.split(pattern, text)
print(results)  # Output: ['Hello', 'World']

위의 예제에서는 정규 표현식 \s을 사용하여 문자열 Hello World를 공백을 기준으로 분리합니다. 이후 re.split()의 반환값인 리스트를 출력합니다.

3. re.findall() 메서드를 사용하여 매칭 결과 분리하기

re.findall() 메서드를 사용하면 문자열에서 정규 표현식에 매칭되는 모든 부분을 찾습니다. 매칭된 결과는 리스트로 반환되며, 리스트의 각 항목은 매칭된 문자열입니다.

import re

pattern = r'[0-9]+'
text = 'Hello 123 World 456'

results = re.findall(pattern, text)
print(results)  # Output: ['123', '456']

위의 예제에서는 숫자 패턴에 해당하는 정규 표현식 [0-9]+을 사용하여 문자열 Hello 123 World 456에서 숫자 부분을 찾습니다. 이후 re.findall()의 반환값인 리스트를 출력합니다.


정규 표현식은 Python에서 매우 강력하고 유연한 도구입니다. 앞서 소개한 re.match(), re.split(), re.findall() 메서드를 사용하여 정규 표현식의 매칭 결과를 문자열로 분리할 수 있습니다. 이는 데이터 처리나 텍스트 분석을 위해 자주 사용되는 기능 중 하나입니다.