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

정규식은 특정 패턴을 나타내는 문자열 검색을 위해 사용되는 강력한 도구입니다. 파이썬은 내장된 re 모듈을 통해 정규식을 지원하며, 이를 사용하여 문자열 내에서 특정 패턴을 찾고 추출할 수 있습니다. 이번 블로그 글에서는 파이썬에서 문자열의 정규식 매칭 결과를 추출하는 방법에 대해 알아보겠습니다.

1. re 모듈 임포트하기

정규식을 사용하기 위해 먼저 re 모듈을 임포트해야 합니다. 아래의 코드를 사용하여 re 모듈을 임포트합니다:

import re

2. re.search() 함수를 사용하여 매칭 결과 추출하기

문자열에서 특정 패턴을 찾고자 할 때는 re.search() 함수를 사용합니다. 이 함수는 첫 번째로 매칭되는 패턴을 찾으면 해당 결과를 반환합니다. 아래의 예제를 통해 설명해보겠습니다:

import re

string = "Hello, there! How are you?"

# 정규식 패턴을 사용하여 매칭 결과 추출
match = re.search(r"there", string)

if match:
    print("매칭되는 패턴 발견!")
    print("매칭된 패턴:", match.group())
else:
    print("매칭되는 패턴 없음.")

위의 예제에서는 “there”라는 패턴을 찾기 위해 re.search() 함수를 사용합니다. 만약 패턴이 매칭되면, match.group()을 사용하여 매칭된 패턴을 반환합니다.

3. re.findall() 함수를 사용하여 모든 매칭 결과 추출하기

만약 문자열 내에서 모든 매칭 결과를 추출하고 싶다면, re.findall() 함수를 사용할 수 있습니다. 아래의 예제를 통해 설명해보겠습니다:

import re

string = "I love reading books. I love coding too."

# 정규식 패턴을 사용하여 모든 매칭 결과 추출
matches = re.findall(r"love", string)

if matches:
    print("매칭되는 패턴 발견!")
    print("매칭된 패턴들:", matches)
else:
    print("매칭되는 패턴 없음.")

위의 예제에서는 “love”라는 패턴을 찾기 위해 re.findall() 함수를 사용합니다. matches 변수에는 매칭된 모든 패턴이 리스트 형태로 저장됩니다.

4. 패턴에서 그룹 추출하기

정규식 패턴에서 괄호를 사용하여 그룹을 지정하면, match.group()을 사용하여 해당 그룹을 추출할 수 있습니다. 아래의 예제를 통해 설명해보겠습니다:

import re

string = "My phone numbers are 123-456-7890 and 987-654-3210."

# 패턴에서 그룹 추출
matches = re.findall(r"(\d{3}-\d{3}-\d{4})", string)

if matches:
    print("매칭되는 패턴 발견!")
    for match in matches:
        print("매칭된 패턴:", match)
else:
    print("매칭되는 패턴 없음.")

위의 예제에서는 전화번호 패턴을 찾기 위해 re.findall() 함수와 그룹을 사용하였습니다. 매칭된 전화번호는 각각 match에 저장되어 이를 출력할 수 있습니다.


이처럼 파이썬의 re 모듈을 사용하여 문자열에서 정규식 매칭 결과를 추출할 수 있습니다. re 모듈은 복잡한 패턴 매칭을 위한 다양한 함수와 기능을 제공하므로, 필요에 따라 해당 문서를 참고하시기 바랍니다.