필자는 Python 2.6에서 re를 사용하여 더 큰 일련의 숫자에서 10 자리 숫자의 숫자를 찾으려고합니다.파이썬 정규식은 겹치는 모든 짝짓기를 찾았습니까?
겹치는 일치를 쉽게 잡을 수는 있지만 숫자 시리즈에서 모든 일치를 원합니다. 예 : 에서
"123456789123456789"
나는 다음과 같은 목록을 얻어야한다 :
[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
나는 "내다"에 대한 참조를 발견했습니다,하지만 내가 본 예제는 숫자 만 쌍을 오히려 보여 더 큰 그룹화와 나는 두 자릿수 이상으로 그들을 변환 할 수 없었다.
제시된 솔루션은 작동하지 않습니다. match() 호출을 여러 번 호출하지 않고 수동으로 'end'경계를 추적하는 솔루션이 있습니까? –
@ VítorDeAraújo :'(a | ab | abc)와 같은 중첩 정규 표현식은 일반적으로 중첩 된 캡처 그룹과 겹치지 않는 것으로 재 작성 될 수 있습니다. '(a (b (c)?)?)?'는 매치를 언 패킹 할 때 가장 바깥 쪽 (즉 가장 왼쪽) 캡처 그룹을 제외하고 모두 무시합니다. 틀림없이 이것은 약간 고통스럽고 쉽게 읽을 수 없습니다. 이것은 또한 더 일치하는 일치하는 정규 표현식이 될 것입니다. – smci