>백엔드 개발 >파이썬 튜토리얼 >Python Regex를 사용하여 겹치는 모든 일치 항목을 찾는 방법은 무엇입니까?

Python Regex를 사용하여 겹치는 모든 일치 항목을 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 03:57:15494검색

How to Find All Overlapping Matches Using Python Regex?

Python에서 Regex를 사용하여 겹치는 일치 찾기

검색 작업에서는 특정 패턴이 여러 번 나타나는 것을 식별하고 검색해야 하는 경우가 많습니다. 더 큰 텍스트. 일치 항목이 겹치는 경우 표준 정규식 일치 기술에서 일부 인스턴스가 누락될 수 있습니다. 이 질문은 Python의 정규 표현식을 사용하여 겹치는 모든 일치 항목을 찾는 방법을 탐구합니다.

목표는 주어진 숫자 시퀀스 내에서 모든 10자리 숫자 집합을 추출하는 것입니다. 예를 들어, 문자열 "123456789123456789"에서 우리는 다음을 얻는 것을 목표로 합니다:

[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]

캡처 그룹 및 예측

이를 달성하기 위해 우리는 내부에 캡처 그룹을 사용합니다. 미리보기. 미리보기는 관심 있는 텍스트(여기서는 10자리 숫자)를 식별하지만 실제 일치 항목은 미리보기 앞의 너비가 0인 하위 문자열입니다. 결과적으로 겹치지 않는 일치 항목이 생성됩니다.

구현

finditer 방법을 사용하면 다음과 같이 일치 항목을 얻을 수 있습니다.

import re
s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))', s)
results = [int(match.group(1)) for match in matches]

출력 결과는 원하는 중복 일치 목록을 반환합니다.

[1234567891,
 2345678912,
 3456789123,
 4567891234,
 5678912345,
 6789123456,
 7891234567,
 8912345678,
 9123456789]

이 접근 방식 지정된 패턴과 중복되는 모든 항목을 효율적으로 추출하여 포괄적인 텍스트 처리를 위한 귀중한 기술을 제공합니다.

위 내용은 Python Regex를 사용하여 겹치는 모든 일치 항목을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.