반응형
파이썬의 re
모듈에서 re.Match
객체는 정규 표현식 검색 결과를 나타내며, 일치하는 부분 문자열에 대한 자세한 정보를 제공합니다. 이 객체는 re.search()
, re.match()
, re.fullmatch()
등의 함수가 일치 결과를 반환할 때 생성됩니다. re.Match
객체는 일치하는 텍스트, 시작 및 끝 위치, 캡처 그룹 등을 포함한 다양한 정보를 제공합니다.
1. re.Match
객체의 주요 메서드와 속성
group()
:- 일치하는 전체 문자열 또는 특정 그룹을 반환합니다.
group(0)
은 전체 일치 문자열을 반환하고,group(n)
은 n번째 그룹을 반환합니다.
start()
:- 일치가 시작되는 문자열 내 위치를 반환합니다.
end()
:- 일치가 끝나는 문자열 내 위치를 반환합니다.
span()
:- 일치하는 부분 문자열의 시작 및 끝 위치를 튜플로 반환합니다.
groups()
:- 모든 캡처 그룹을 튜플로 반환합니다.
groupdict()
:- 이름이 있는 캡처 그룹을 딕셔너리로 반환합니다.
2. 예제
import re
# 예제 문자열
string = "My phone number is 123-456-7890."
# 정규 표현식 패턴
pattern = r"(\d{3})-(\d{3})-(\d{4})"
# re.search()를 사용하여 일치하는 부분 찾기
match = re.search(pattern, string)
# Match 객체가 반환되었는지 확인
if match:
print("Match found!")
# group() 메서드
print("Full match:", match.group()) # 전체 일치
print("Group 1:", match.group(1)) # 첫 번째 그룹
print("Group 2:", match.group(2)) # 두 번째 그룹
print("Group 3:", match.group(3)) # 세 번째 그룹
# start()와 end() 메서드
print("Start position:", match.start())
print("End position:", match.end())
# span() 메서드
print("Span:", match.span())
# groups() 메서드
print("Groups:", match.groups())
else:
print("No match found.")
예제 출력
Match found!
Full match: 123-456-7890
Group 1: 123
Group 2: 456
Group 3: 7890
Start position: 19
End position: 31
Span: (19, 31)
Groups: ('123', '456', '7890')
이 예제에서:
pattern = r"(\d{3})-(\d{3})-(\d{4})"
는 전화번호 형식을 찾는 정규 표현식입니다.re.search()
함수는 문자열에서 이 패턴과 일치하는 부분을 찾고, 일치하는 부분이 있으면re.Match
객체를 반환합니다.match.group()
메서드는 전체 일치 문자열과 각 캡처 그룹을 반환합니다.match.start()
와match.end()
메서드는 일치하는 부분의 시작 및 끝 위치를 반환합니다.match.span()
메서드는 시작 및 끝 위치를 튜플로 반환합니다.match.groups()
메서드는 모든 캡처 그룹을 튜플로 반환합니다.
re.Match
객체는 일치 결과에 대한 상세한 정보를 제공하여 정규 표현식을 사용한 문자열 처리에 매우 유용합니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] re.findall() 사용하기 (0) | 2024.07.21 |
---|---|
[ Python ] re.search() 사용하기 (이름 찾기) (0) | 2024.07.21 |
[ Python ] 정규 표현식에서 패턴 수량자에 대해서 알아보기 (0) | 2024.07.21 |
[ Python ] 정규 표현식의 모든 메타 문자의 사용 예제 (1) | 2024.07.21 |
[ Python ] 정규 표현식의 기본 구성 요소 (0) | 2024.07.20 |