Ich versuche Regex Muster für eine Klasse zu lernen. Ich mache einen einfachen HTML-Lexer/Parser. Ich weiß, dass dies nicht der beste oder effizienteste Weg ist, um einen Lexer/Parser zu erstellen, aber es ist nur um Regex-Muster zu verstehen.Wie erstelle ich ein Regex-Muster für HTML-Simple-Text?
Also meine Frage ist: Wie erstelle ich ein Muster, das, wenn der String keine HTML-Tags enthält nicht überprüft (dh <TAG>
) und enthält keine HTML-Entities (dh &ENT;
)?
Dies ist, was ich mit so weit kommen könnte, aber es immer noch nicht funktioniert:
.+?(^(?:&[A-Za-z0-9#]+;)^(?:<.*?>))
EDIT: Das einzige Problem ist, dass ich nicht das Endergebnis ein Ich brauche negieren zu finden vollständiges Muster, das diese Aufgabe erfüllen würde, wenn es möglich ist, obwohl es möglicherweise nicht hübsch ist. Ich habe das nie erwähnt, aber es sollte ziemlich genau mit jedem einfachen Text in einer HTML-Seite übereinstimmen.
möglich Duplikat [RegEx Spiel offen Tags außer XHTML self-contained tags] (http://stackoverflow.com/questions/1732348/regex-match-open -tags-except-xhtml-inclosed-tags) –
Warum können Sie das Muster nicht negieren? Ich verstehe Ihre Argumentation nicht ... –
Sie könnten Ihre HTML-Zeichenfolge kopieren und dann die unten stehenden Regex-Muster verwenden, um die HTML-Tags und -Entitäten loszuwerden (ersetzen Sie die Muster durch nichts). Dadurch bleiben Sie mit reinem Text (obwohl die Entitäten weg sind, anstatt in ihre tatsächlichen Zeichen übersetzt). –