Reguläre Ausdrücke -Modifikatoren (Flags)
Modifikatoren für reguläre Ausdrücke (auch Muster-Modifikatoren oder Flags genannt) sind spezielle Direktiven, mit denen das Übereinstimmungsverhalten eines regulären Ausdrucks geändert wird.
Flags werden auch Modifikatoren genannt. Flags in regulären Ausdrücken werden verwendet, um zusätzliche Übereinstimmungsstrategien anzugeben.
Flags werden nicht innerhalb des regulären Ausdrucks geschrieben; sie werden außerhalb des Ausdrucks platziert, und zwar im folgenden Format:
/pattern/flags
Häufige Modifikatoren
Die folgende Tabelle listet häufig verwendete Modifikatoren in regulären Ausdrücken auf:
1. i(ignore case) – Groß-/Kleinschreibung ignorieren
-
Bewirkt, dass beim Abgleich die Groß-/Kleinschreibung ignoriert wird.
-
Beispiel:
/abc/iKann mit "abc", "Abc", "ABC" usw. übereinstimmen. -
Unterstützte Sprachen: Nahezu alle Implementierungen regulärer Ausdrücke (JavaScript, PHP, Python usw.)
2. g(global) – Globale Übereinstimmung
-
Alle Übereinstimmungen finden, anstatt nach der ersten Übereinstimmung aufzuhören
-
Beispiel: Im String "ababab",
/ab/gFindet alle drei "ab" -
Unterstützte Sprachen: JavaScript, PHP usw.
3. m(multiline) - Mehrzeilenmodus
-
Ändert
^und$das Verhalten so, dass es mit dem Anfang und dem Ende jeder Zeile übereinstimmt, nicht nur mit dem Anfang und dem Ende der gesamten Zeichenkette. -
Beispiel: In einer mehrzeiligen Zeichenkette,
/^abc/mStimmt mit "abc" am Anfang jeder Zeile überein -
Unterstützte Sprachen: JavaScript, PHP, Python, Perl usw.
4. s(single line/dotall) - Einzeilenmodus
-
Sorgt dafür, dass der Punkt
.mit allen Zeichen übereinstimmt, einschließlich Zeilenumbruchzeichen -
In JavaScript wird er "dotall"-Modus genannt, unter Verwendung des
/smodifier -
Beispiel:
/a.b/sKann mit "a\nb" übereinstimmen -
Unterstützte Sprachen: PHP, Perl, Python (als
re.DOTALL)、JavaScript(ES2018+)
5. u(unicode) - Unicode-Modus
-
Ermöglicht vollständige Unicode-Unterstützung
-
Verarbeitet UTF-16-Surrogatpaare und Unicode-Zeicheneigenschaften korrekt
-
Beispiel:
/\p{Script=Greek}/uKann griechische Buchstaben abgleichen -
Unterstützte Sprachen: JavaScript, PHP usw.
6. y(sticky) - Sticky-Übereinstimmung
-
Startet den Abgleich ab der aktuellen Position der Zielzeichenkette (unter Verwendung der
lastIndexEigenschaft) -
Ähnlich wie
^Anker, aber er zielt auf die Startposition der Übereinstimmung ab -
Beispiel: In JavaScript,
/a/ywird startenlastIndexÜbereinstimmung mit "a" aus -
Unterstützte Sprachen: JavaScript
7. x(erweitert) - Erweiterter Modus
-
Ignoriert Leerzeichen und Kommentare im Muster, wodurch der reguläre Ausdruck besser lesbar wird
-
Beispiel: In PHP,
/a b c/xist äquivalent zu/abc/ -
Unterstützte Sprachen: PHP, Perl, Python (als
re.VERBOSE)
g-Modifikator
Der g-Modifikator findet alle Übereinstimmungen in einer Zeichenkette:

Beispiel
Finde "example" in der Zeichenkette:
Selbst ausprobieren »
i-Modifikator
Der i-Modifikator führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durch, Beispiel wie folgt:

Beispiel
Finde "example" in der Zeichenkette:
Selbst ausprobieren »
m-Modifikator
Der m-Modifikator bewirkt, dass^und$mit den Anfangs- und Endpositionen jeder Zeile in einem Text übereinstimmen.
Mit nur g stimmt es nur mit der ersten Zeile überein; nach dem Hinzufügen von m wird eine mehrzeilige Übereinstimmung erreicht.

Im folgenden Beispiel verwendet die Zeichenkette\nzum Zeilenumbruch:
Beispiel
Finde "example" in der Zeichenkette:
Selbst ausprobieren »
s-Modifikator
Standardmäßig entspricht der Punkt.jedem Zeichen außer Zeilenumbruch\nNach dem Hinzufügen von s,.werden Zeilenumbruchzeichen eingeschlossen\n。

Beispiel für den s-Modifikator:
Beispiel
In der Zeichenkette suchen:
Selbst ausprobieren »
Erweiterte Hinweise
Ergänzende Tabelle der sprachspezifischen Modifikatoren:
| Sprache | Spezifischer Modifikator | Beschreibung |
|---|---|---|
| PHP | A |
Verankert das Muster am Anfang der Zeichenkette |
D |
$Entspricht nur dem Ende der Zeichenkette (ohne abschließenden Zeilenumbruch) |
|
U |
Kehrt die Gierigkeit von Quantifizierern um (macht alle Quantifizierer nicht-gierig) | |
| Python | re.A |
make\w,\W,\b,\Busw. stimmen nur mit ASCII-Zeichen überein |
re.L |
Wird gemäß den Locale-Einstellungen bestimmt\w,\WBedeutung von usw. |
|
| JS(ES2022) | d |
Erzeugt eine indices-Eigenschaft für Übereinstimmungsergebnisse (enthält Start- und Endindizes der Übereinstimmungspositionen) |
Beispieltabelle der Modifikator-Kombinationen:
| Kombination | Wirkung |
|---|---|
gi |
Globales Matching + Ignorieren der Groß-/Kleinschreibung (z. B. alle Formen des Wortes "email" finden) |
ims |
Ignorieren der Groß-/Kleinschreibung + Mehrzeilenmodus + Punkt entspricht Zeilenumbruch (wird häufig in der Loganalyse verwendet) |
gu |
Globales Matching + Unicode-Unterstützung (z. B. alle Unicode-Emojis finden) |
Inline-Modifikator-Tabelle (PCRE/Perl-Stil):
| Syntax | Geltungsbereich | Beispiel |
|---|---|---|
(?i) |
Groß-/Kleinschreibung ignorieren aktivieren | a(?i)bc→ Entspricht "aBc", "aBC" |
(?-i) |
Groß-/Kleinschreibung ignorieren deaktivieren | a(?i)b(?-i)c→ Entspricht nur "aBc" |
(?i:...) |
Nur innerhalb von Klammern wirksam | a(?i:b)c→ Entspricht "aBc", "abc" |
Weitere ErweiterungenHinweis: Die Implementierung von Modifikatoren kann je nach Sprache variieren. Es wird empfohlen, bei deren Verwendung die Dokumentation der jeweiligen Sprache zu konsultieren.