정규 표현식은 문자열에서 특정 패턴을 검색하고 추출하는 데 사용되는 강력한 도구입니다. 이러한 패턴 중 일부는 매칭 그룹이라고도 불리는 지정된 부분 문자열을 추출할 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 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의 정규 표현식을 사용하면 매칭 그룹을 추출하여 특정 패턴의 부분 문자열을 쉽게 식별할 수 있습니다. 이를 활용하면 문자열 처리에 유용한 기능을 추가할 수 있습니다.