Ich habe die humorvollen Threads gesehen und die Warnungen gelesen, und ich weiß, dass Sie analysieren HTML nicht mit Regex . Mach dir keine Sorgen ... Ich plane es nicht zu versuchen .
ABER ... das bringt mich dazu zu fragen: Wie werden HTML-Parser codiert (einschließlich der eingebauten Funktionen von Programmiersprachen, wie DOM-Parser und PHP-strip_tags)? Welchen Mechanismus verwenden sie, um das (manchmal fehlerhafte) Markup zu analysieren?
Ich habe die Quelle von eine in JavaScript codiert , und es verwendet tatsächlich Regex, um die Aufgabe zu erledigen:
%Vor%Tun sie das alle? Gibt es eine herkömmliche Standardmethode zum Codieren eines HTML-Parsers?
Ich weiß nicht, dass dieser Stil eine "normale" Art ist, Dinge zu tun. Es ist besser als die meisten, die ich gesehen habe, aber es ist immer noch zu nah an dem, was ich als "naiven" Ansatz in diese Antwort . Zum einen werden HTML-Kommentare nicht in die Quere kommen. Es gibt auch rechtliche, aber auch einige Angelegenheiten von Unternehmen, mit denen es nicht zu tun hat. Aber es sind HTML-Kommentare, bei denen die meisten solcher Ansätze fallen.
Ein natürlicherer Weg ist es, einen Lexer zu verwenden, um Token abzuziehen, mehr wie in der Abbildung im Skript dieser Antwort , dann sammle sie sinnvoll zusammen. Der Lexer könnte die HTML-Kommentare leicht genug kennen.
Sie könnten dies mit einer vollständigen Grammatik wie dem hier gezeigt zum Parsen einer RFC 5322-Mailadresse. Das ist die Art von Ansatz, die ich in der zweiten, "wizardly" Lösung in diese Antwort . Aber selbst das ist nur eine vollständige Grammatik für wohlgeformtes HTML, und ich interessiere mich nur für ein paar verschiedene Arten von Tags. Diejenigen, die ich vollständig definiere, aber ich definiere keine gültigen Felder für Tags, die mich nicht interessieren.
Tags und Links regex html-parsing