정규 표현식은 문자열에서 특정 패턴을 찾고 분리하는 데 매우 유용한 도구입니다. 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()
메서드를 사용하여 정규 표현식의 매칭 결과를 문자열로 분리할 수 있습니다. 이는 데이터 처리나 텍스트 분석을 위해 자주 사용되는 기능 중 하나입니다.