반응형
re.match()
함수는 패턴이 문자열의 시작 부분과 일치하는지 확인할 때 사용됩니다. 이 함수는 re.Match
객체를 반환하며, 이 객체를 통해 매치된 부분과 캡처된 그룹에 접근할 수 있습니다. 이 때, 캡처된 그룹에 접근하려면 group()
메서드를 사용하며, 이 메서드의 인덱스를 통해 특정 그룹의 값을 숫자로 접근할 수 있습니다.
re.match()
의 사용 방법
import re
# 패턴 정의 (정규 표현식)
pattern = r"(\d{3})-(\d{2})-(\d{4})"
# 문자열
text = "123-45-6789"
# 패턴 매칭
match = re.match(pattern, text)
if match:
# 매칭된 전체 문자열
print(match.group(0)) # '123-45-6789'
# 각 그룹에 접근 (숫자로)
print(match.group(1)) # '123'
print(match.group(2)) # '45'
print(match.group(3)) # '6789'
else:
print("매치되지 않음")
예제 설명
위 코드에서 pattern
변수는 세 부분으로 나누어진 숫자를 매칭하는 정규 표현식입니다. (\d{3})
, (\d{2})
, (\d{4})
는 각각 3자리, 2자리, 4자리 숫자를 나타내며, 이 부분을 소괄호로 묶어서 캡처 그룹을 형성합니다.
match.group(0)
은 매칭된 전체 문자열을 반환합니다.match.group(1)
,match.group(2)
,match.group(3)
은 각각 첫 번째, 두 번째, 세 번째 캡처 그룹에 해당하는 부분을 반환합니다.
응용 예제
다음은 조금 더 복잡한 예제입니다. 이름과 나이를 매칭하는 예제입니다.
import re
# 패턴 정의
pattern = r"Name: (\w+), Age: (\d+)"
# 문자열
text = "Name: Alice, Age: 30"
# 패턴 매칭
match = re.match(pattern, text)
if match:
# 매칭된 이름과 나이 추출
name = match.group(1)
age = int(match.group(2)) # 나이를 숫자로 변환
print(f"Name: {name}, Age: {age}")
else:
print("매치되지 않음")
응용 예제 설명
이 예제에서는 이름과 나이를 매칭하는 패턴을 사용했습니다. (\w+)
는 이름과 일치하는 단어를 캡처하고, (\d+)
는 나이를 나타내는 숫자를 캡처합니다. 그런 다음 match.group(1)
과 match.group(2)
를 사용하여 각각 이름과 나이를 추출하며, age
의 경우 숫자 형식으로 변환합니다.
이처럼 re.match()
를 사용하면 매칭된 문자열과 캡처 그룹에 쉽게 접근할 수 있으며, 이들을 다양한 방식으로 활용할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] re.Scanner를 이용해서 RPN 계산기 만들기 (0) | 2024.08.02 |
---|---|
[ Python ] re.split() 사용하기 (0) | 2024.08.02 |
[ Python ] 정규표현식에서 부정적 전방 탐색 사용하기 (0) | 2024.07.27 |
[ Python ] 정규표현식에서 다중 패턴으로 전방 탐색하기 (0) | 2024.07.27 |
[ Python ] 정규 표현식에서 전방 탐색 기능에 대해서 알아보기 (0) | 2024.07.27 |