Teilstring zw. zwei Tags auslesen

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
crafty
User
Beiträge: 12
Registriert: Freitag 29. April 2005, 12:56

Hallo Leute,

ich hoffe ich werde jetzt nicht direkt gesteinigt, aber ich habe da ein Problem einen String zwischen zwei Tags auszulesen.
Also folgendes: ich lese den Inhalt einer *.asp Datei aus und schaufel das alles in eine String-Variable, da ich damit hinterher noch ein paar andere Dinge tun muss.
Nun kommen in diesem Text Zeilen vor die ungefähr so aussehen können:

Code: Alles auswählen

<keyword ref="./framework/.../.../xy.html">Ich bin ein Index</keyword>
Das was ich jetzt möchte ist alles zwischen

Code: Alles auswählen

<keyword ref="./framework/.../.../xy.html">
und

Code: Alles auswählen

</keyword>
auszulesen. Diese Zeilen kommen x-fach vor und die Pfadangabe im ersten Tag kann beliebig lang sein.
Ich tue mich sehr schwer mit den RegularExpressions und bekomm den Kram einfach nicht ausgelesen.
Also bitte nicht steinigen oder teeren und federn! Aber nen Ansatz wie ich das mache wäre klasse!
Vielen Dank!

crafty :wink:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das wäre ein Ansatz:

Code: Alles auswählen

import re
s = """'<keyword ref="./framework/.../.../xy.html">Ich bin ein Index</keyword>'"""
r = re.compile(r'(?<=">).*(?=</keyword>)')
r.findall(s)
Warum will eingentlich das positive Lookbehind nicht sowas wie [\w|\s]* akzeptieren?

Edit: Regex angepasst.
Zuletzt geändert von Leonidas am Freitag 12. August 2005, 14:36, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Vielleich ein wenig zuviel des guten:
http://www.crummy.com/software/Beautifu ... ation.html

(Ich hab's mal in die FAQ aufgenommen)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Leonidas hat geschrieben:Warum will eingentlich das positive Lookbehind nicht sowas wie [\w|\s]* akzeptieren?
Bist Du sicher, dass Du auch beliebig viele | haben möchtest? :wink:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Bist Du sicher, dass Du auch beliebig viele | haben möchtest? :wink:
Nun, eigentlich nicht, aber ich glaube sowieso nicht dass dort normalerweise irgendwelche | vorkommen :D
jens hat geschrieben:Vielleich ein wenig zuviel des guten:
http://www.crummy.com/software/Beautifu ... ation.html
Hat halt den Nachteil, dass du es mitliefern musst, aber die Regex diese Aufgabe auch schafft. Außer natürlich du willst es wirklich fürs komplette parsen nutzen, dann ist es sicher wunderbar und sehr praktisch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
crafty
User
Beiträge: 12
Registriert: Freitag 29. April 2005, 12:56

Vielen Dank für eure Hilfe! Vor allem an Dich Leonidas!
Hat super geklappt und ich kann endlich weiter machen!
Danke

crafty :wink:
Antworten