[Python-de] mit RegEx text extrahieren?

Guenther Sommermann GueSo at gmx.ch
Sam Jul 5 14:11:07 EDT 2003


Hallo,

Erstmal danke an alle, ich hätt nicht soviel an Antworten erwartet.

Nachdem ich mir jetzt mal alles angeschaut denk ich, ich werd
erstmal diese einfache RegEx-Lösung benutzen.

>> (Vorweg: Das ganze könnte man wahrscheinlich am besten mit einem
>> XML-Parser machen (hab ich mir auch shcon angeschaut), aber da ich
>> grade erst anfange Python zu lernen is mir das noch zu hoch.....)

> ok, in dem Fall denke ich, daß es echt ok ist, zu Übungszwecken mit RegEx zu
> experimentieren. Allgemein solltest du aber schon versuchen, auch die
> Standard Bibliothek kennen und benutzen zu lernen.
[...]
jo, is nur die Sache mit dem "und benutzen zu lernen.", da haperts noch
n (großes) bisschen...

und für alle die auch mal RDF's parsen wollen, hab ich auch noch was
bei google gefunden: http://rdflib.net/ (extra was für Python..)

> In dem konkreten Beispiel würde ich das einfach so lösen:

> import urllib, re

> #   liste von tuple mit (titel,link) erzeugen
> hrdf = urllib.urlopen('http://www.heise.de/newsticker/heise.rdf').read()
> pattern =
> r'<title>(.+?)</title>\s*<link>(http://www.heise.de/newsticker/data/.+?)</li
nk>>'
wieso das Beispiel Funktioniert und das:
"re.compile(r'<link>(.+)(</link>)')" nicht (gibt trotzdem die Link-Tags
mit zurück), is mir allerdings nicht klar.

> links = re.findall(pattern,hrdf)

> #   in liste mit links verwandeln
> links = '\n'.join(["<a href='%s'>%s</a><br>" % (link,title) for title,link
> in links])
> print "<html><body>%s</body></html>" % links

> Für meinen Geschmack ist das ein guter Kompromiss zwischen Kompaktheit und
> Lesbarkeit. Aber Geschmäcker sind ja bekannter Maßen unterschiedlich! ;-)
Jo sind sie, aber unsere geschmäcker sind wohl ziemlich ähnlich :)

> Gruß,
> Achim

Danke
Günther



-----
 /"\            mailto: GueSo at gmx.ch
 \ /
  X ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
 / \