Ich möchte alle alternierenden Ziffern in einer Zeichenfolge mit regulären Ausdrücken finden. Eine alternierende Ziffer ist definiert als zwei gleiche Ziffern mit einer Ziffer dazwischen; zum Beispiel enthält 1212 2 Alternationen (121 und 212) und 1111 enthält auch 2 Alternationen (111 und 111). Ich habe den folgenden regulären Ausdruck Code:Alle Vorkommen alternierender Ziffern mit regulären Ausdrücken finden
s = "1212"
re.findall(r'(\d)(?:\d)(\1)+', s)
Diese für Zeichenketten wie „121656“ funktioniert, aber nicht „1212“. Dies ist ein Problem mit überlappenden Übereinstimmungen, denke ich. Wie kann ich damit umgehen?
Spezifische Antwort von @vks; Siehe auch Antwort auf ähnliche Frage @ http://StackOverflow.com/a/320478/43774. – rivy