„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie extrahiere ich mehrzeiligen Text aus HTML mit JavaScript Regex?

Wie extrahiere ich mehrzeiligen Text aus HTML mit JavaScript Regex?

Veröffentlicht am 08.11.2024
Durchsuche:803

How to Extract Multi-Line Text from HTML with JavaScript Regex?

Mehrzeilige Textextraktion aus HTML mit JavaScript Regex

Beim Versuch, Zeichenfolgen aus HTML mithilfe eines regulären Ausdrucks in JavaScript abzurufen, ist dies von entscheidender Bedeutung um die Kompatibilität von Modifikatoren zu berücksichtigen. In Ihrem Szenario treten Probleme mit dem mehrzeiligen Flag (/m) auf.

Der Dotall-Modifikator und JavaScript

Das Problem ergibt sich aus der Tatsache, dass JavaScript dies nicht tut unterstützen von Natur aus den Modifikator /.../s, der auch als Modifikator „dotall“ bekannt ist. Dieser Modifikator erzwingt, dass das Punktzeichen (.) mit Zeilenumbrüchen übereinstimmt, was normalerweise nicht der Fall ist.

Erstellen einer Problemumgehung: Zeichenklasse

Um das Fehlen des zu umgehen Mit dem Modifikator /s in JavaScript können Sie eine Zeichenklasse () zusammen mit ihrer Negation (\S) verwenden. Dieser Ansatz entspricht effektiv jedem Zeichen, einschließlich Zeilenumbrüchen.

Aktualisierte Regex-Syntax

Vor diesem Hintergrund sollte Ihr Regex wie folgt geändert werden:

/<div>

ES6-Unterstützung

Es ist erwähnenswert, dass JavaScript ab ES2018 das Flag „/s“ (dotAll) unterstützt. Das bedeutet, dass Sie in moderneren Umgebungen Ihre ursprüngliche Regex-Syntax mit dem Flag „/s“ anstelle des Flags „/m“ verwenden können:

/<div>
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3