[Python-de] Schon wieder findall

Albert Hermeling Albert.Hermeling at t-online.de
Son Mar 13 18:49:34 CET 2005


Hallo,

Jetzt habe ich in den letzten Tagen soviel zum Thema Regexe gelesen bzw. 
ausprobiert das ich dachte ich kenne mich mit den Regexen aus. Das war wohl 
ein Trugschluß wie folgende Aufgabe gezeigt hat:

Aus folgenden zwei Strings sollen alle Wörter die von den Tags <b> </b>, <u> 
</u> und <i> </i>. eingeschlossen sind gefunden werden. Zu berücksichtigen 
ist das im dem Beginn Tags  CSS Stylesheets stehen können:

str1 = 'Und was ist <b><i>fett und schief</i></b> der <b>Dicke</b> mit den 
<i>schiefen</i> Gang'

str2 = 'Ein <b>Haus</b> ist <i>groß</i> wenn es <u>zwei Stockwerke</u> hat'

Folgende RegExe führte zum Teilerfolg:

reg = re.compile(r"<[biu].*>(.+)</[biu]>")
reg.findall(str1 [bzw. str2])

als Rückgabe erhalte ich immer die beiden Letzten Treffer "schiefen" und "zwei 
Stockwerke". Warum erhalte ich nicht eine liste mit allen Treffern??? Was 
mache ich da schon wieder falsch.

Schon mal Danke im voraus.

mfg

Albert