>백엔드 개발 >파이썬 튜토리얼 >Python의 `re` 모듈을 사용하여 문자열에서 겹치는 10자리 숫자 시리즈를 모두 찾는 방법은 무엇입니까?

Python의 `re` 모듈을 사용하여 문자열에서 겹치는 10자리 숫자 시리즈를 모두 찾는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-29 22:31:11980검색

How Can I Find All Overlapping 10-Digit Number Series in a String Using Python's `re` Module?

겹치는 정규식 일치: 모든 숫자 계열 찾기

소개

다음 질문이 발생합니다. 다음을 사용하여 더 큰 숫자 모음 내에서 겹치는 모든 10자리 숫자 계열을 찾는 방법 Python 2.6의 're' 모듈. 겹치지 않는 일치 항목은 간단하지만 모든 항목을 추출하는 것은 어려운 일입니다.

해결책

이 문제를 해결하기 위해 미리보기 내에 캡처 그룹을 사용할 수 있습니다. 미리보기는 원하는 시퀀스를 식별하지만 실제 일치는 그 앞의 너비가 0인 하위 문자열에 해당하므로 겹치지 않습니다.

구현

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]

설명

정규 표현식 (?=(d{10}))는 바로 오른쪽에 10자리 숫자 시리즈(d{10})를 나타내는 캡처 그룹이 있다고 주장합니다. 미리보기는 어떤 문자도 사용하지 않으므로 실제 일치 항목은 개별 10자리 계열인 미리보기 앞의 길이가 0인 하위 문자열입니다.

위 내용은 Python의 `re` 모듈을 사용하여 문자열에서 겹치는 10자리 숫자 시리즈를 모두 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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