RE Grouping

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Hallo,
mach gerade das RE HowTo durch und häng an folgender Stelle:

Code: Alles auswählen

>>> m = re.match("([abc])+", "abc")
>>> m.groups()
('c',)
Warum hier nur der letzte Buchstabe matched, ist mir irgendwie nicht klar...
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

ice2k3 hat geschrieben:

Code: Alles auswählen

>>> m = re.match("([abc])+", "abc")
>>> m.groups()
('c',)
Warum hier nur der letzte Buchstabe matched, ist mir irgendwie nicht klar...
Du fängst in der Gruppe nur ein Zeichen. Wenn du mehr haben möchtest, dann muss der Code leicht anders aussehen:

Code: Alles auswählen

m = re.match("([abc]+)", "abc")
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

/me hat geschrieben: Du fängst in der Gruppe nur ein Zeichen.
Klar! ;)
Mir war allerdings nicht klar, warum das auf den letzten Buchstaben des ersten Wortes matched...

Code: Alles auswählen

>>> m = re.search(r"(\w)+", "abc def")
>>> m.groups()
('c',)
Ist mir jetzt allerdings klar, er geht ja solange durch, bis es eben nicht mehr passt. (Automatentheorie war doch nicht so umsonst)
Antworten