EisFuX: regular expressions

Beitrag lesen

Ich habe eine längere Liste von Zitaten, schön in HTML formatiert. Die möchte ich nun in eine Datenbank importieren. Da ich zu faul bin, die Zitateinträge einzeln zu übernehmen, wollte ich mir ein PHP-Skript schreiben, dass diese Aufgabe übernimmt. So weit, so gut.

Leider hat sich nun das "Ausfiltern" der Nutzinformationen aus dem HTML-Wirrwarr als Problem herausgestellt. Die einzelnen Zitate sind nämlich nicht immer exakt gleich aufgebaut. Ich habe mal die vier möglichen Varianten aufgeführt:

...

Zitattext.<br />
  <i class="author">Autor</i><br /><br />

<!--kommentar-->
  Zitattext.<br />
  <i class="author">Autor</i><br />

Zitattext.<br />
  <i class="author">Autor</i><br /><br />
  <small>(Anmerkungstext)</small><br /><br />

<!--kommentar-->
  Zitattext.<br />
  <i class="author">Autor</i><br /><br />
  <small>(Anmerkungstext)</small><br /><br />

...

Erschwerend kommt hinzu, dass manche Zitate mehrere Zeilen in der Art
Zitattext<br />
Zitattext.<br />
enthalten.
Weitere HTML-Tags treten aber nicht auf.

"Kommentar", "Autor" und "Anmerkung" herauszufiltern ist dabei das kleinere Übel. Aber der Zitattext selbst weigert sich beharrlich. Ich weiß nicht, wie ich den Anfang des Textes mit regulären Ausdrücken definieren soll.

Außerdem hat mich die schiere Fülle von RegEx-Funktionen in PHP etwas überrascht (habe bisher nur Perl benutzt), daher habe ich meine ersten Versuche auf die Funktion
preg_match()
beschränkt.

Kann mir jemand helfen oder Tipps geben?
(Aber bitte keine Links zu PHP-Hilfe-Websites, die kenne ich schon alle -- inklusive "selfphp.de" und "de.php.net/manual/de/ref.pcre.php")