[Python-de] Schon wieder findall

Gerold Penz gerold.penz at aon.at
Son Mar 13 19:23:56 CET 2005


Albert Hermeling schrieb:
> 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:

Hallo Albert!

Suche, wenn möglich immer zusammengehörende Tags, sonst könnte die Sache 
relativ schnell nicht mehr wie gewünscht funktionieren. Noch besser: 
suche ein Tag-Paar je "findall"-Durchlauf. Wenn du es so machst wie in 
diesem Beispiel, dann bekommst du eine Liste mit Dreiertupeln zurück.
Der erste Wert im Tupel liefert das Ergebnis für "<b>(.+?)</b>".
Der zweite Wert im Tupel leifert das Ergebnis für "<i>(.+?)</i>".
...

reg = re.compile(r"<b.*?>(.+?)</b>|<i.*?>(.+?)</i>|<u.*?>(.+?)</u>")
reg.findall(str1 [bzw. str2])

Das "?" im Ausdruck macht das "+" nicht so gierig.
Siehe: http://www.python.org/doc/2.3.5/lib/re-syntax.html
Suche: greedy

mfg
Gerold
:-)

-- 
______________________________________________________________________
Gerold Penz
bcom - Programmierung

gerold.penz at aon.at | http://gerold.bcom.at
http://free.sw3.at | http://www.sw3.at | http://www.bcom.at

Gratis... PC-Kassensystem | Warenwirtschaft | Adressenverwaltung

Ehrliche, herzliche Begeisterung ist einer der
wirksamsten Erfolgsfaktoren. Dale Carnegie