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

정규 표현식(Regular Expression)은 문자열에서 특정한 패턴을 찾아내기 위해 사용되는 강력한 도구입니다. 이를 통해 문자열에서 원하는 부분만을 추출하거나 검색하는 작업을 수행할 수 있습니다. 이번 블로그 포스트에서는 Python에서 정규 표현식을 활용해 매칭 결과 문자열을 추출하는 방법에 대해 알아보겠습니다.

re 모듈

Python에서 정규 표현식을 사용하기 위해서는 re 모듈을 import 해야 합니다. re 모듈은 문자열의 패턴 매칭을 위한 다양한 함수와 메서드를 제공합니다.

import re

re.match()

re.match() 함수는 주어진 패턴이 문자열의 처음부터 매칭되는지 확인하고, 매칭된 결과를 반환합니다. 만약 매칭되는 부분이 있으면 매치 객체(Match Object)를 반환하고, 매칭되지 않으면 None을 반환합니다.

import re

pattern = r'hello'
text = 'hello world'

match = re.match(pattern, text)
if match:
    print(match.group())

위의 예제에서 pattern으로 정의한 패턴은 문자열의 처음에서 “hello”라는 단어를 찾아냅니다. text는 “hello world”로 정의되어 있으며, 이 문자열의 처음에 “hello”가 매칭됩니다. 따라서 match는 매치 객체를 반환하고, match.group()을 호출하여 매칭된 문자열인 “hello”를 추출할 수 있습니다.

re.search()

re.search() 함수는 문자열 전체에서 패턴과 매칭되는 부분을 찾아내고, 매칭된 첫 번째 결과를 반환합니다. re.match() 함수와 달리, 문자열의 시작 부분에 대한 제한이 없습니다.

import re

pattern = r'world'
text = 'hello world'

search = re.search(pattern, text)
if search:
    print(search.group())

위의 예제에서 pattern으로 정의한 패턴은 “world”라는 단어를 찾아냅니다. text는 “hello world”로 정의되어 있으며, 이 문자열에서 “world”가 매칭됩니다. 따라서 search는 매치 객체를 반환하고, search.group()을 호출하여 매칭된 문자열인 “world”를 추출할 수 있습니다.

re.findall()

re.findall() 함수는 문자열에서 패턴과 매칭되는 모든 부분을 찾아내고, 매칭된 결과를 리스트로 반환합니다.

import re

pattern = r'\d+'
text = 'I have 10 apples and 20 oranges.'

results = re.findall(pattern, text)
print(results)

위의 예제에서 pattern으로 정의한 패턴은 하나 이상의 숫자(\d+)를 찾아냅니다. text는 “I have 10 apples and 20 oranges.”로 정의되어 있으며, 이 문자열에서 숫자 “10”과 “20”이 각각 매칭됩니다. 따라서 results는 숫자 “10”과 “20”을 요소로 갖는 리스트를 반환합니다.

정규 표현식을 이용하여 문자열에서 원하는 부분을 정확하게 추출할 수 있는 Python의 re 모듈에 대해 알아보았습니다. 이를 통해 데이터 처리나 텍스트 분석 등 다양한 작업에 유용하게 활용할 수 있습니다.