Direkt zum Hauptinhalt springen
eLearner.app
Modul 5 · Lektion 4 von 420/32 im Kurs~12 min
Lektionen des Moduls (4/4)

Unicode Property Escapes

Die Klassen \wmulti_replace_file_content, \dmulti_replace_file_contentmulti_replace_file_content, \s in ASCII reichen für deutsche, französische, griechische Texte oder Emojis nicht aus. Modernes JavaScript (mit dem u-Flag -- Unicode) bietet Eigenschafts-Escapes \p{...}: semantische Klassen basierend auf den Unicode-Eigenschaften von Zeichen.

Code
Pattern: \p{L}+        (mit Flag u)
Sample:  Ciao caffe' über世界
         ^^^^ ^^^^^^^ ^^^^ ^^^^

\p{L} = "jeder Buchstabe (Unicode)": Schließt Umlaute, chinesische Schriftzeichen, Kyrillisch, Griechisch... alles ein. Die häufigsten:

  • \p{L} -- Buchstabe (beliebiger Alphabete).
  • \p{N} -- Zahl (arabische Ziffern, römische Zahlen, indische Zahlen...).
  • \p{P} -- Interpunktion (Satzzeichen).
  • \p{S} -- Symbol (mathematische Symbole, Währungszeichen, Emojis...).
  • \p{Z} -- Leerzeichen/Trennzeichen.
  • \p{Script=Latin} -- speziell das lateinische Alphabet.
  • \p{Script=Greek} -- das griechische Alphabet. Und so weiter.

Und die verneinten Versionen \P{L}, \P{N}, ...

Unterschied zu \w und \d

Code
\w matcht [A-Za-z0-9_]              -- nur ASCII, kein "caffe'"
\p{L}\p{N}_  mit Flag u            -- schließt Umlaute und Sonderzeichen ein

Für einen robusten Parser von deutschen Texten solltest du \p{L} gegenüber \w bevorzugen: schön, Straße, Äpfel werden korrekt als Wörter gematcht.

Unicode-Eigenschaften und Browserkompatibilität

Unicode-Eigenschaften wie \\p{L} (Buchstaben) oder \\p{Script=Latin} erweitern Klassen auf internationale Alphabete. In JavaScript erfordern sie zwingend das u- (oder v-) Flag, andernfalls wirft die Engine einen Syntaxfehler.

Probiere es aus

Übung#regex.m5.l4.e1
Versuche: 0Wird geladen…

Finde jedes Wort, einschließlich solcher mit Akzenten oder Umlauten (citta', perche', e' …). Verwende den Eigenschafts-Escape \p{L} mit dem Flag u.

Editor wird geladen…
Hinweis anzeigen

Ersetze \w+ durch \p{L}+ und füge das u-Flag hinzu (zusätzlich zu g).

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#regex.m5.l4.e2
Versuche: 0Wird geladen…

Finde jedes Unicode-Symbol (Währungen, Mathe, Emojis) im Text, ausgenommen Buchstaben und Ziffern.

Editor wird geladen…
Hinweis anzeigen

\p{S} matcht die Symbol-Kategorie von Unicode. Denke an das u-Flag.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#regex.m5.l4.e3
Versuche: 0Wird geladen…

Finde alle Wörter, die aus Buchstaben des kyrillischen Alphabets bestehen, unter Verwendung von `p{Script=Cyrillic}`.

Editor wird geladen…
Hinweis anzeigen

Verwende \p{Script=Cyrillic} mit dem Quantifizierer + und dem u-Flag.

Lösung nach 3 Versuchen verfügbar