Direkt zum Hauptinhalt springen
eLearner.app
Modul 7 · Lektion 1 von 425/32 im Kurs~12 min
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.

FlagNameEffekt
gGlobalFindet alle Treffer, nicht nur den ersten (erforderlich für matchAll).
iIgnore caseCase-insensitive (einschließlich Unicode-Zeichen mit dem u/v-Flag).
mMultiline^ und $ matchen den Anfang/das Ende einer Zeile, nicht nur des gesamten Strings.
sDot allDer . matcht auch den Zeilenumbruch \n.
uUnicodeKorrekte Behandlung von Code Points > 0xFFFF und ermöglicht \\p{...}.
vUnicode v-modeModerne Erweiterung von u mit Mengenoperationen ([abc&&[def]]).
yStickyMatcht nur ab der Position lastIndex, kein Überspringen von Text.
dHas indicesDas Ergebnis enthält indices mit dem Anfang/Ende jeder Gruppe.
JS
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 (oder v) -- 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

Übung#regex.m7.l1.e1
Versuche: 0Wird geladen…

Finde alle Vorkommen von 'ciao', unabhängig von Groß-/Kleinschreibung. Verwende das korrekte Flag.

Editor wird geladen…
Hinweis anzeigen

Füge das Flag i (case-insensitive) neben g hinzu.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#regex.m7.l1.e2
Versuche: 0Wird geladen…

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.

Editor wird geladen…
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

Übung#regex.m7.l1.e3
Versuche: 0Wird geladen…

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}]+`.

Editor wird geladen…
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