본문 바로가기
AI Journey/혼자 공부하는 파이썬

[파이썬] 정규 표현식(Regex) 2. 그룹화(Grouping) (예제: 전화번호 찾기)

by 보눔비스타 2025. 2. 20.

이전 글에서 참조했던 예시를 가지고 이번에는 앞 3자리(지역번호)와 뒤 7자리를 각각 그룹화하여 따로 출력해 보자. 

>>> phoneNumRegex = re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)')
>>> mo = phoneNumRegex.search('My number is 415-555-4242.')
>>> mo.group(1)
'415'
>>> mo.group(2)
'555-4242'
>>> mo.group(0)
'415-555-4242'
>>> mo.group()
'415-555-4242'

예제 출처: Automate the Boring Stuff with Python (https://automatetheboringstuff.com/2e/chapter7/)

 

위와 같이 괄호를 이용해 (\d\d\d)-(\d\d\d-\d\d\d\d) 이렇게 각각 그룹으로 묶으면 2개의 그룹이 생성된다.

첫 괄호 세트는 그룹 1, 두 번째 괄호 세트는 그룹 2가 된다.

.group()메서드에 정수 1 또는 2를 전달하여 매칭된 문자열의 각각 다른 부분을 얻어낼 수 있다. 

만약 괄호 안에 0을 넣거나 아무것도 넣지 않으면, .group()메서드는 매치된 문자열 전체를 반환한다. 

 

생성된 그룹을 모두 반환하고 싶다면, .groups() 메서드를 사용하면 된다. 

>>> mo.groups()
('415', '555-4242')
>>> areaCode, mainNumber = mo.groups()
>>> print(areaCode)
415
>>> print(mainNumber)
555-4242

예제 출처: Automate the Boring Stuff with Python (https://automatetheboringstuff.com/2e/chapter7/)