RegEx: Spezielle Änderung in Python nötig?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Moinsen,
ich lasse durch ein Python-Script eine Beschreibungsseite auslesen und deren Inhalt soll ein eine Datenbank gespeichert werden.
Nur bekomm ich auf jeder Seite einen MySQL-Error. Zum Glück sind diese zwischen zwei Font-Tags gespeichert.

Dachte ich halt, bauste nen Regulären Ausdruck um diese Störfälle aus dem Code zu löschen.

Ein Code-Stück sieht z.B. so aus:

Code: Alles auswählen

<input type="hidden" name="jahrvon" value="" /><input type="hidden" name="jahrbis" value="" /><input type="hidden" name="lieferbar" value="" /></form><br /><font color="ff0000">???_<br />
<b>Warning</b>:  mysql_close(): supplied argument is not a valid MySQL-Link resource in <b>/srv/www/htdocs/shop/migal/limashop0/85224A.php</b> on line <b>196</b><br />
_???</font>
Mein RegEx lautet so:

Code: Alles auswählen

/<font color="ff0000">(.*?)<\/font>/ism
In einem RegEx-Tool funktioniert das, in Python aber nicht.
Aufrufen tu ich das ganze über

Code: Alles auswählen

regEx = '/<font color="ff0000">(.*?)<\/font>/ism'
desc = re.sub (regEx, '', desc)
Funktioniert aber nicht. Ich habe auch schon

Code: Alles auswählen

regEx = '<font color="ff0000">(.*?)<\/font>'
ausprobiert, geht aber auch nicht.

Wo ist der Fehler?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Lass die "/" weg und benutze statt "ism" die entsprechenden Konstanten aus dem "re"-Modul. Alternativ kannst du auch den regulären Ausdruck mit (?ism) beginnen.

Stefan
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

(?ism) hat funktioniert. Vielen Dank :)
lunar

Oder nimm am besten gleich einen richten HTML-Parser wie BeautifulSoup oder lxml.html. Markup parst man nicht mit regulären Ausdrücken ...
Antworten