Wie kann ich HTML mit Perl in einer Zeichenfolge entfernen?

8

Ist es sowieso einfacher, HTML mit Perl aus einer Zeichenfolge zu entfernen?

%Vor%

Ich würde sowohl einen abgespeckten regulären Ausdruck, z. etwas wie das:

%Vor%

Gibt es eine vorhandene Perl-Funktion, die einen beliebigen HTML-Code aus einer Zeichenkette streift, obwohl ich nur fettgedruckte Buchstaben, h1-Header und br stripped brauche?

    
ParoX 01.07.2009, 05:28
quelle

3 Antworten

18

Angenommen, der Code ist ein gültiger HTML-Code (keine stray & lt; - oder & gt; -Operatoren)

%Vor%

Wenn Sie nur fett, h1 und br entfernen müssen

%Vor%

Und Sie sollten vielleicht das HTML :: Strip -Modul

in Betracht ziehen     
Abhinav Gupta 01.07.2009, 05:31
quelle
14

Sie sollten sich unbedingt das HTML :: Restrict ansehen, mit dem Sie sich entfernen oder einschränken können die HTML-Tags erlaubt. Ein minimales Beispiel, das alle HTML-Tags entfernt:

%Vor%

Ich würde empfehlen, von HTML :: Strip wegzubleiben, weil die utf8-Codierung unterbricht .

    
Juan A. Navarro 03.03.2011 13:09
quelle
14

Von perlfaq9: Wie entferne ich HTML aus einer Zeichenkette?

Der korrekteste Weg (wenn auch nicht der schnellste) ist HTML :: Parser von CPAN zu verwenden. Ein anderer, meist korrekter Weg ist die Verwendung von HTML :: FormatText, das nicht nur HTML entfernt, sondern auch versucht, den resultierenden Klartext etwas einfacher zu formatieren.

Viele Leute versuchen einen einfachen Ansatz mit regulärem Ausdruck, wie s / & lt;. *? & gt; // g, aber das scheitert in vielen Fällen, weil die Tags über Zeilenumbrüche fortgesetzt werden können, sie können zitierte spitze Klammern enthalten oder HTML-Kommentar vorhanden sein. Außerdem vergessen Leute, Entitäten zu konvertieren - wie & lt; zum Beispiel.

Hier ist ein "einfältiger" Ansatz, der für die meisten Dateien funktioniert:

%Vor%

Wenn Sie eine vollständigere Lösung wünschen, sehen Sie sich das 3-stufige striphtml-Programm in Ссылка .

Hier sind einige knifflige Fälle, über die Sie nachdenken sollten, wenn Sie eine Lösung auswählen:

%Vor%

Wenn HTML-Kommentare andere Tags enthalten, werden diese Lösungen auch bei Text wie folgt unterbrochen:

%Vor%     
brian d foy 01.07.2009 08:16
quelle

Tags und Links