Lektionen des Moduls (1/4)
Alle Flags im Detail
Vollständige Zusammenfassung aller Flags, die im modernen JavaScript (ES2024) verfügbar sind. Ein Flag ist ein einzelnes Zeichen, das das Verhalten der Regex modifiziert; sie können in beliebiger Reihenfolge kombiniert werden.
| Flag | Name | Effekt |
|---|---|---|
g | Global | Findet alle Treffer, nicht nur den ersten (erforderlich für matchAll). |
i | Ignore case | Case-insensitive (einschließlich Unicode-Zeichen mit dem u/v-Flag). |
m | Multiline | ^ und $ matchen den Anfang/das Ende einer Zeile, nicht nur des gesamten Strings. |
s | Dot all | Der . matcht auch den Zeilenumbruch \n. |
u | Unicode | Korrekte Behandlung von Code Points > 0xFFFF und ermöglicht \\p{...}. |
v | Unicode v-mode | Moderne Erweiterung von u mit Mengenoperationen ([abc&&[def]]). |
y | Sticky | Matcht nur ab der Position lastIndex, kein Überspringen von Text. |
d | Has indices | Das Ergebnis enthält indices mit dem Anfang/Ende jeder Gruppe. |
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (immer in kanonischer Reihenfolge: dgimsuvy)Typische Kombinationen
g+i-- "alles finden, case-insensitive". 80% der praktischen Anwendungen.g+m-- für zeilenweises Matching in mehrzeiligem Text.g+s-- "der Punkt matcht alles, auch Zeilenumbrüche". Nützlich, um Blöcke über mehrere Zeilen hinweg zu extrahieren.u(oderv) -- immer, wenn du es mit realem Text in einer beliebigen Sprache oder Emojis zu tun hast.
Unicode v-mode und Flag-Evolution
Das v-Flag (verfügbar in ES2024) ersetzt u und ermöglicht fortgeschrittene Mengenoperationen, wie die Schnittmenge und Subtraktion von Zeichenklassen (z. B. [\\p{White_Space}&&\\p{ASCII}]).
Probiere es aus
Finde alle Vorkommen von 'ciao', unabhängig von Groß-/Kleinschreibung. Verwende das korrekte Flag.
Hinweis anzeigen
Füge das Flag i (case-insensitive) neben g hinzu.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Finde einen Block zwischen `<pre>` und `</pre>`, selbst wenn er Zeilenumbrüche enthält. Du musst das Flag verwenden, mit dem der Punkt auch Zeilenumbrüche matcht.
Hinweis anzeigen
Füge das Flag s hinzu, damit . auch Zeilenumbrüche matcht, und verwende das Lazy-Muster .+?, um beim ersten </pre> zu stoppen.
Lösung nach 3 Versuchen verfügbar
Zusätzliche Herausforderung
Matche Sequenzen von ASCII-Zeichen, explizit unter Ausschluss von Ziffern, unter Verwendung von Unicode-v-Modus-Eigenschaften (Flag `v`) und der Syntax für Mengensubtraktion `[\p{ASCII}--\p{Nd}]+`.
Hinweis anzeigen
Verwende das v-Flag und schreibe die Mengensubtraktion [\p{ASCII}--\p{Nd}]+, um Zahlen auszuschließen.
Lösung nach 3 Versuchen verfügbar