Zum Inhalt springen

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


Output appears here after Run.

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


Output appears here after Run.

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.


Output appears here after Run.

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.


Output appears here after Run.

Hier matcht world$ mit dem m-Flag „world“ am Ende jeder Zeile.

Beispiel: Extrahieren bestimmter Zeilen


Output appears here after Run.

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


Output appears here after Run.

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 world und HELLO WORLD matchen 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


Output appears here after Run.

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?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.