[파이썬] 정규 표현식의 매칭 그룹 추출

정규 표현식은 문자열에서 특정 패턴을 검색하고 추출하는 데 사용되는 강력한 도구입니다. 이러한 패턴 중 일부는 매칭 그룹이라고도 불리는 지정된 부분 문자열을 추출할 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 Python을 사용하여 정규 표현식의 매칭 그룹 추출에 대해 다루어 보겠습니다.

매칭 그룹 추출

정규 표현식에서 매칭 그룹은 괄호 ()를 사용하여 지정할 수 있습니다. 매칭 그룹은 패턴 내에서 특정 부분 문자열을 식별하는 데 사용됩니다. 이렇게 식별된 부분 문자열은 이후에 추출할 수 있습니다.

다음은 매칭 그룹을 추출하는 간단한 예제입니다.

import re

# 패턴과 문자열을 정의합니다.
pattern = r'(\d{3})-(\d{3})-(\d{4})'
text = '전화번호는 010-123-4567입니다.'

# 정규 표현식을 사용하여 매칭 그룹을 추출합니다.
match = re.search(pattern, text)
if match:
    # 매칭 그룹 1, 2, 3을 추출합니다.
    group_1 = match.group(1)
    group_2 = match.group(2)
    group_3 = match.group(3)

    print('전화번호: {}'.format(match.group()))
    print('지역번호: {}'.format(group_1))
    print('국번: {}'.format(group_2))
    print('번호: {}'.format(group_3))

위의 코드에서는 전화번호 패턴을 정의하고, 주어진 문자열에서 매칭 그룹을 추출합니다. re.search() 함수를 사용하여 첫 번째 매칭을 찾은 후, group() 함수를 사용하여 매칭 그룹을 추출합니다. 추출된 매칭 그룹은 group() 함수의 인덱스를 통해 접근할 수 있습니다.

여러 매칭 그룹 추출

정규 표현식에는 여러 개의 매칭 그룹이 포함될 수도 있습니다. 이 경우 group() 함수의 인덱스를 이용하여 각 매칭 그룹을 추출할 수 있습니다.

import re

# 패턴과 문자열을 정의합니다.
pattern = r'(\w+)\s(\d+)'
text = '이름: 홍길동, 나이: 30'

# 정규 표현식을 사용하여 매칭 그룹을 추출합니다.
match = re.search(pattern, text)
if match:
    # 이름과 나이를 추출합니다.
    name = match.group(1)
    age = match.group(2)

    print('이름: {}'.format(name))
    print('나이: {}'.format(age))

위의 코드에서는 이름과 나이를 추출하는 패턴을 정의하고, 주어진 문자열에서 매칭 그룹을 추출합니다. re.search() 함수를 사용하여 첫 번째 매칭을 찾은 후, group() 함수를 사용하여 각 매칭 그룹을 추출합니다.

결론

Python의 정규 표현식을 사용하면 매칭 그룹을 추출하여 특정 패턴의 부분 문자열을 쉽게 식별할 수 있습니다. 이를 활용하면 문자열 처리에 유용한 기능을 추가할 수 있습니다.