Heim > Artikel > Web-Frontend > Wie extrahiere ich mit Regex mehrzeiligen Text zwischen Tags in JavaScript?
Regex zum Extrahieren von mehrzeiligem Text zwischen zwei Tags in JavaScript
Sie stehen vor Herausforderungen beim Extrahieren von Text aus einer HTML-Zeichenfolge mithilfe eines Regex-Musters . Insbesondere scheint das Multiline-Flag (/m) nicht zu funktionieren, wenn der HTML-Code Zeilenumbrüche enthält.
Um dieses Problem zu beheben, müssen Sie den Modifikator „/.../s“ verwenden. allgemein als „dotall“-Modifikator bezeichnet. Es ist jedoch wichtig zu beachten, dass dieser Modifikator in Vanilla-JavaScript nicht vorhanden ist.
Problemumgehungen ohne Dotall-Modifikator:
Wenn Sie das /s-Flag nicht verwenden können Erwägen Sie in Ihrer aktuellen JavaScript-Umgebung eine Problemumgehung mithilfe einer Zeichenklasse, die sowohl Leerzeichen als auch Nicht-Leerzeichen enthält:
[\s\S]
In Ihrem Fall würde der reguläre Ausdruck so aussehen:
/<div>
Modernes JavaScript: Unterstützung für Dotall-Modifikatoren
In modernen JavaScript-Umgebungen, die ES2018 unterstützen, können Sie das Flag „/s“ (dotAll) direkt verwenden. Dieses Flag sorgt dafür, dass das Punktzeichen (.) im Regex auch mit Zeilenumbruchzeichen übereinstimmt.
Daher könnte Ihr ursprünglicher Regex mit dem /s-Flag umgeschrieben werden:
/<div>
Durch die Verwendung von Mit dem Modifikator dotall (/s) oder seinem Workaround ([sS]) können Sie sicherstellen, dass Ihr Regex-Muster erfolgreich mehrzeiligen Text zwischen den angegebenen HTML-Tags abgleicht, selbst wenn dieser Text Zeilenumbrüche enthält.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit Regex mehrzeiligen Text zwischen Tags in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!