Chciałbym znaleźć wszystkie naprzemienne cyfry w ciągu za pomocą wyrażeń regularnych. Cyfra naprzemienna definiowana jest jako dwie równe cyfry mające cyfrę pomiędzy; na przykład 1212 zawiera 2 warianty (121 i 212), a 1111 zawiera również 2 warianty (111 i 111). Mam następujący kod regularnego wyrażenia:Znajdowanie wszystkich wystąpień naprzemiennych cyfr za pomocą wyrażeń regularnych
s = "1212"
re.findall(r'(\d)(?:\d)(\1)+', s)
Działa to w przypadku ciągów takich jak "121656", ale nie "1212". Jest to problem związany z nakładającymi się meczami, które myślę. Jak sobie z tym poradzić?
Szczególna odpowiedź udzielona przez @vks; zobacz także odpowiedź na podobne pytanie @ http://stackoverflow.com/a/320478/43774. – rivy