Python Regex에서 반복 하위 패턴 일치 및 캡처
이메일 주소와 같은 복잡한 패턴을 일치시킬 때 반복 하위 패턴을 캡처해야 하는 경우가 많습니다. 예를 들어, "yasar@webmail.something.edu.tr"과 같은 이메일 주소에서 도메인 부분 ".something" 및 ".edu"를 캡처해야 합니다. Regex는 반복되는 캡처 그룹을 통해 이를 수행하는 방법을 제공합니다. 그러나 Python re 모듈은 이를 완전히 지원하지 않습니다.
옵션 1: Python의 re 모듈 사용
(.w )와 같은 패턴을 사용하려고 하면 즉, 모든 항목이 아닌 마지막으로 일치하는 그룹만 캡처합니다. 예를 들어, [이메일 보호]를 사용하면 ".tr"만 캡처하고 ".something" 및 ".edu."는 누락됩니다.
옵션 2: 나중에 분할 및 일치
제공된 답변에서 알 수 있듯이 Python에서 더 간단한 접근 방식은 처음에 모든 것을 일치시킨 다음 문자열 조작을 사용하여 캡처된 하위 패턴을 분할하는 것입니다. 이는 읽고 구현하기가 더 쉬울 수 있습니다. 예를 들면 다음과 같습니다.
import re # Match the entire email address email_pattern = re.compile(r'([^\s@]+)@(\w+\.\w+)') match = email_pattern.match('[email protected]') if match: # Split the domain portion domain = match.group(2) domain_parts = domain.split('.') print('Domain Parts:', domain_parts)
이 코드는 전체 이메일 주소를 캡처한 다음 도메인을 여러 부분으로 분할하여 각 하위 패턴에 별도로 액세스하고 저장할 수 있도록 합니다.
위 내용은 Python Regex에서 반복되는 하위 패턴을 어떻게 캡처할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!