Ich versuche, alle 10-stelligen Zahlenreihen innerhalb einer größeren Zahlenreihe mit re in Python 2.6 zu finden.
Ich bin leicht in der Lage, keine überlappenden Übereinstimmungen zu erfassen, aber ich möchte jede Übereinstimmung in der Zahlenserie. Z.B.
in "123456789123456789"
Ich sollte die folgende Liste bekommen:
[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
Ich habe Verweise auf einen "Lookahead" gefunden, aber die Beispiele, die ich gesehen habe, zeigen nur Zahlenpaare und keine größeren Gruppierungen, und ich konnte sie nicht über die beiden Ziffern hinaus konvertieren.
(a|ab|abc)
können im Allgemeinen als nicht überlappende Regexe mit verschachtelten Capture-Gruppen umgeschrieben werden, z. B. (a(b(c)?)?)?
wenn wir beim Auspacken eines Matches alle außer der äußersten (dh ganz links) Capture-Gruppe ignorieren. zugegebenermaßen ist dies leicht schmerzhaft und weniger lesbar. Dies wird auch ein leistungsfähigerer Regex sein.