3 Stimmen

Reguläre Ausdrücke, um Text zwischen Tags zu erhalten

Ich schreibe eine Anwendung, die den Titel einer HTML-Seite, einen Text unter dem Body-Tag und ein Bild ausgibt. Es ist so etwas wie der Share-Kram von Facebook. Ich kann einen regulären Ausdruck erhalten, der das tut. Vielen Dank für Ihre Hilfe.

6voto

Scharron Punkte 16533

Eine Regexp wie <title>(.*?)</title> erhalten Sie den Inhalt des Titels. Der .*?-Teil ist für den Abgleich beliebiger Zeichen, ohne dass eine Gier entsteht (für den Fall, dass die Seite einen weiteren Titel-End-Tag enthält).

2voto

Jens Punkte 24565

Sie sollten wahrscheinlich einen HTML-Parser anstelle eines regulären Ausdrucks verwenden. Siehe Einfaches HTML-DOM zum Beispiel.

Ein regulärer Ausdruck für Ihre Aufgabe ist sehr schwer zu pflegen und bricht bei jeder Änderung der betreffenden Seiten leicht zusammen, ganz zu schweigen davon, dass Sie HTML-Kommentare nicht berücksichtigen können.

1voto

Klemen Tusar Punkte 8608

Ich habe gerade diesen Ausdruck geprägt, der den Text innerhalb der Tags (den Knotenwert) abruft, ohne die eigentlichen Tags selbst.

(?<=\"\>)(.*?)(?=\<\/)

Sie können es hier in Aktion mit PHP sehen: http://codepad.viper-7.com/AUTcv3

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X