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.
Benutzeravatar
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

RegEx: Spezielle Änderung in Python nötig?

Beitragvon Area51 » Mittwoch 6. August 2008, 09:12

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

Beitragvon sma » Mittwoch 6. August 2008, 09:15

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
Benutzeravatar
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Beitragvon Area51 » Mittwoch 6. August 2008, 09:25

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

Beitragvon lunar » Mittwoch 6. August 2008, 09:51

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder