[Python-de] Probleme mit regulären Ausdruck

Florian Lindner mailinglists at xgm.de
Fr Okt 14 16:50:07 CEST 2011


Hallo,

ich probiere einen regulären Ausdruck zusammenzubauen.

re.match(r"(.+)\.(.+)_(.+)", "A.B_C").groups()
-> ('A', 'B', 'C')


Macht schon soweit alles was ich will, A, B und C landen in den entsprechenden 
Groups. Nun will ich jedoch den Teil hinter den _ optional machen. "A.B" soll 
also ebenfalls gematcht werden, mit der dritten Gruppe dann halt None oder 
nicht-existent. Daran scheitere ich jedoch noch.

re.match(r"(.+)\.(.+)(?:_(.+))?", "A.B_C").groups()
-> ('A', 'B_C', None)


Wenn ich die + Operatoren zu non-greedy umschalte, dann versagt der RegExp bei 
ausdrücken mit mehreren Buchstaben

re.match(r"(.+?)\.(.+?)(?:_(.+))?", "Aa.Bb_Cc").groups()
-> ('Aa', 'B', None)

Wer kann mir da ein wenig auf die Sprünge helfen?

Danke,

Florian


Mehr Informationen über die Mailingliste python-de