Warum wird re.groups () mir nichts für meine eine korrekt passende Gruppe geben?
Wenn ich diesen code ausführen:
print re.search(r'1', '1').groups()
Bekomme ich ein Ergebnis von ()
. Allerdings .group(0)
gibt mir das Spiel.
Sollte nicht groups()
gib mir etwas mit dem match?
Update: vielen Dank für die Antworten. Das bedeutet also, dass wenn ich re.search()
mit keine Untergruppen, ich haben Verwendung groups(0)
um ein match zu bekommen?
InformationsquelleAutor der Frage dtc | 2011-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gruppen ist leer, da Sie nicht alle erfassen von Gruppen - http://docs.python.org/library/re.html#re.MatchObject.groups. Gruppe(0) wird immer wieder der ganze text, der zugeordnet wurde, unabhängig davon, ob es aufgenommen wurde, in einer Gruppe oder nicht
Bearbeitet.
InformationsquelleAutor der Antwort arunkumar
Zu den besten meines Wissens
.groups()
gibt ein Tupel von erinnerte Gruppen. I. e. diejenigen Gruppen, die in dem regulären Ausdruck, der in Klammern eingeschlossen sind. Also, wenn Sie schreiben:würden Sie bekommen
als Ihre Antwort. Im Allgemeinen
.groups()
zurückkehren wird, ein Tupel aller Gruppen von Objekten, die in dem regulären Ausdruck, sind von Klammern umschlossen.InformationsquelleAutor der Antwort HodofHod
Der Grund dafür ist, dass Sie keine Erfassung von Gruppen (da Sie nicht
()
im Muster).http://docs.python.org/library/re.html#re.MatchObject.groups
Sowie
group(0)
wird das gesamte suchergebnis (auch wenn es keine Erfassung von Gruppen):http://docs.python.org/library/re.html#re.MatchObject.group
InformationsquelleAutor der Antwort ovgolovin
Haben Sie keine Gruppen in Ihrer regex, deshalb erhalten Sie eine leere Liste (
()
) als Ergebnis.Versuchen
Mit den Klammern, die Sie erstellen, eine Aufnahme der Gruppe, das Ergebnis entspricht dieser Teil der Muster, gespeichert in einer Gruppe.
Dann erhalten Sie
als Ergebnis.
InformationsquelleAutor der Antwort stema