JavaScript Regex m-Flag (Mehrzeilen)
Einführung in den Mehrzeilenmodus
Das m-Flag in JavaScript regulären Ausdrücken ermöglicht es den Ankerzeichen ^ und $, den Anfang und das Ende jeder Zeile innerhalb eines mehrzeiligen Strings zu matchen, anstatt nur den Anfang und das Ende des gesamten Strings. Dies ist besonders nützlich bei der Arbeit mit mehrzeiligem Text, bei dem zeilenweise Musterabgleiche erforderlich sind.
Das m-Flag: Aktivieren des Mehrzeilenmodus
Wenn Sie das m-Flag verwenden, matchen die Anker ^ und $ die Positionen vor und nach Zeilenumbrüchen innerhalb des Strings.
Verwenden des m-Flags
In diesem Beispiel matcht der reguläre Ausdruck ^abc aufgrund des m-Flags den Anfang jeder Zeile, die mit „abc“ beginnt. Das g-Flag stellt sicher, dass alle Vorkommen matchen. Ohne das m-Flag würde es nur „abc“ ganz am Anfang des Strings matchen.
Beispiel: Mehrere Zeilen matchen
Hier matcht der reguläre Ausdruck ^start aufgrund der Kombination aus m- und g-Flag den Anfang von Zeilen, die mit „start“ beginnen.
Praktische Anwendungen
Zeilen in mehrzeiligem Text matchen
Das m-Flag ist besonders nützlich, um bestimmte Muster am Anfang oder Ende jeder Zeile in einem mehrzeiligen String zu matchen.
Dieses Beispiel zeigt, wie ^hello mit dem m-Flag „hello“ am Anfang jeder Zeile matcht.
Zeilenenden in mehrzeiligem Text matchen
Ebenso können Sie das m-Flag verwenden, um Muster am Ende jeder Zeile zu matchen.
Hier matcht world$ mit dem m-Flag „world“ am Ende jeder Zeile.
Beispiel: Extrahieren bestimmter Zeilen
Dieses Beispiel zeigt, wie Sie mit dem m-Flag alle Zeilen, die mit „Error:“ beginnen, aus einer Protokolldatei extrahieren können.
Kombinieren von Flags
Sie können das m-Flag mit anderen Flags kombinieren, um Ihre regulären Ausdrücke zu erweitern. Beispielsweise ermöglicht die Kombination des m-Flags mit dem fallunabhängigen i-Flag ein fallunabhängiges Mehrzeilen-Matching.
Beispiel: Fallunabhängiges Mehrzeilen-Matching
In diesem Beispiel matcht der reguläre Ausdruck Zeilen, die „hello“ enthalten, unabhängig von der Groß-/Kleinschreibung, aufgrund der Kombination aus m- und i-Flag.
- Das Regex-Muster
^.*hello.*$matcht jede Zeile, die „hello“ enthält, unabhängig von der Groß-/Kleinschreibung. - Das
m-Flag stellt sicher, dass jede Zeile im mehrzeiligen String einzeln behandelt wird. Hello world,hello worldundHELLO WORLDmatchen alle das Muster, da sie „hello“ (case-insensitive) irgendwo in der Zeile enthalten.
INFO
Verwenden Sie das m-Flag in JavaScript-Regex, um die Anker ^ und $ auf jede Zeile in einem mehrzeiligen String anzuwenden, wodurch Sie Ihre Fähigkeit zur Validierung und Bearbeitung von zeilenweisen Inhalten verbessern.
Verwenden des m-Flags für die zeilenweise Validierung
Das m-Flag ist ideal für Szenarien, in denen Sie jede Zeile innerhalb eines mehrzeiligen Strings einzeln validieren oder bearbeiten müssen.
Beispiel: Validieren einer US-amerikanischen Telefonnummer
Dieser reguläre Ausdruck stellt sicher, dass die Telefonnummer im Format (123) 456-7890 vorliegt. Er verwendet ^, um den Anfang und $, um das Ende zu markieren, und stellt sicher, dass der gesamte String für jede Zeile dem angegebenen Muster entspricht.
Daher matchen sowohl "(123) 456-7890" als auch "(234) 567-8901" das Regex-Muster, da sie dem Format (xxx) xxx-xxxx entsprechen, für das der reguläre Ausdruck ausgelegt ist.
Fazit
Das m-Flag in JavaScript-Regulären Ausdrücken erweitert die Funktionalität der Anker ^ und $, um den Anfang und das Ende jeder Zeile in einem mehrzeiligen String zu matchen. Diese Fähigkeit ist unverzichtbar für die Verarbeitung von mehrzeiligen Textdaten, da sie ein präzises zeilenweises Muster-Matching und eine Validierung ermöglicht.
Practice
Welche Funktion hat das 'm'-Flag in JavaScript-Regulären Ausdrücken?