Wie kann ich mit dem re
Modul die Start- und Endpositionen aller Spiele ermitteln ? Zum Beispiel möchte ich angesichts des Musters r'[a-z]'
und der Zeichenfolge 'a1b2c3d4'
die Positionen erhalten, an denen jeder Buchstabe gefunden wird. Im Idealfall möchte ich auch den Text des Spiels zurückbekommen.
110
Antworten:
quelle
start()
akzeptiert möglicherweise eine Gruppennummer. Wenn Sie also einen Index der n-ten Gruppe wünschen, verwenden Siestart(n)
Genommen von
Regulärer Ausdruck HOWTO
Kombinieren Sie das mit:
In Python 2.2 ist auch die finditer () -Methode verfügbar, die eine Folge von MatchObject-Instanzen als Iterator zurückgibt.
Sie sollten in der Lage sein, etwas in der Größenordnung von zu tun
quelle
re.search(r'abbit', "has abbit of carrot").span(0)
-(4, 9)
span()
ist wie der 'Stopp' in Pythons Slice-Notation, da er bis zu diesem Index reicht, diesen jedoch nicht enthält. siehe hier .Für Python 3.x.
Sie erhalten
\n
für jeden Treffer in der Zeichenfolge getrennte Tupel (bestehend aus dem ersten und dem letzten Index des Spiels) und das Spiel selbst.quelle
Beachten Sie, dass der Bereich und die Gruppe für mehrere Erfassungsgruppen in einem regulären Ausdruck indiziert sind
quelle
4
?