Seite 1 von 1

über mehrere Zeilen hinweg matchen

Verfasst: Donnerstag 14. September 2006, 12:44
von movies1978
Ich will in einer Datei eine Struktur erkennen, welche ungefähr folgende Struktur hat.

<script methodname="xyz">
<author></author>
<contact></contact>
<description>fdfdsf</description>
<targetdevice>none</targetdevice>
<comments></comments>
</script>

Kann ich zeilenübergreifend mit dem re modul mir den ganzen Teil als match ausspucken lassen.
Ich habe einiges versucht, aber bin nicht sehr weit gekommen. Hat einer eine Idee.

Mathias

Verfasst: Donnerstag 14. September 2006, 15:26
von sape
Jupp, ich glaube mit XML kännte das gehen (denke ich mal). Oder du schreibst dir einen eigenen Parser.

Im Prinzip ist das sogar noch recht Simpel die Struktur. Hab das schon für eigene Scriptsprachen eine Parser geschrieben das um einiges komplexer war. Also soll heißen: wenn du mir die genaue Struktur nennt und worin das ganze gespeichert werden soll bastele ich mall was zusammen.

Aber schau mal erstmal ob das mit nen XML-Parser geht. Ich glaube für Python gibt es da was für XML…


lg

EDIT: wo sollen die geparsten Daten nachher landen? SQLite Datenbank?

Re: über mehrere Zeilen hinweg matchen

Verfasst: Donnerstag 14. September 2006, 15:48
von Leonidas
movies1978 hat geschrieben:Ich will in einer Datei eine Struktur erkennen, welche ungefähr folgende Struktur hat.
Was meinst du mit Struktur erkennen? Die Werte auslesen? Das geht mit einem SAX-Parser, einem DOM-Parser, BeautifulSoap, ElementTree viel einfacher als mit einem Regulären Ausdruck.
movies1978 hat geschrieben:Kann ich zeilenübergreifend mit dem re modul mir den ganzen Teil als match ausspucken lassen.
Geht doch, angenommen dein Code ist im String s enthalten:

Code: Alles auswählen

re.findall(r'<script.*</script>', s, re.DOTALL)