[Python-de] Gruppen in sich wiederholenden Sub-Patterns

Stefan Schwarzer sschwarzer at sschwarzer.net
Fr Nov 16 03:10:16 EST 2018


On 16/11/2018 00.22, Peter Otten wrote:
>> Kann man erklären, warum sich der Match anders als erwartet
>> verhält (ohne nur das zu wiederholen, was ich schon gesagt
>> habe ;-) )?
> 
> Nein, aber wenn ich es als Zitat der Dokumentation verpacke
> 
> """
> If a group is contained in a part of the pattern that matched multiple times, 
> the last match is returned.
> """
> 
> strahlt es doch hoffenlich die nötige Autorität aus ;)

Ok, tut es. ;-) Das hatte ich dann wohl übersehen.

>> Falls nicht, wie würdet ihr das Problem sonst lösen? Mir sind
>> mögliche Ansätze eingefallen, aber die wirken alle ziemlich
>> frickelig.
> 
> Das alternative regex-Modul von Matthew Barnett sammelt alle captures:
> 
>>>> import regex
>>>> m = regex.compile("(\w+( \w+)*)").search("ab cd ef")
>>>> m.groups()
> ('ab cd ef', ' ef')
>>>> m.captures(2)
> [' cd', ' ef']

Interessant. Danke! :-)

Anscheinend gibt es das Modul schon einige Jahre, aber ich
hatte nie davon gehört, vermutlich, weil für die meisten
Anwendungen das `re`-Modul in der Standardbibliothek reicht.

Viele Grüße
Stefan




Mehr Informationen über die Mailingliste python-de