import re
ip6 = "1234:0678:0000:0000:00cd:0000:0000:0000"
zeroes = re.search("(:?0000)+", ip6)
print zeroes.group(0)
:0000:0000
콜론으로 구분 된 4 개의 0 중에서 가장 긴 시퀀스를 찾으려고합니다. 문자열에는 이러한 세 개의 그룹이 포함되지만 두 개의 그룹 만 인쇄됩니다. 왜?파이썬 re.search()가 전체 그룹 일치를 반환하지 않습니다.
편집 : 0000 : 그것은 인쇄의 0000 그 문자열의 첫 경기이기 때문에 -하지만 난 항상 긴 일치를 보았다 regexps '에 생각? 파이썬 2.6에서 작동하도록 업데이트
이 변경 사용에 대한 파이썬 2.7.3
을 사용하고 있습니다 (^ 0000 | : 0000) (? : 0000)에 –
사실, NFA 정규식 엔진 (예 : Python의 경우)은 항상 "가장 긴 _left-most_"일치를 반환합니다. – ridgerunner
@ridgerunner 저것을위한 근원? –