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.
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
\w matcht [A-Za-z0-9_] -- nur ASCII, kein "caffe'"
\p{L}\p{N}_ mit Flag u -- schließt Umlaute und Sonderzeichen einFü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
Finde jedes Wort, einschließlich solcher mit Akzenten oder Umlauten (citta', perche', e' …). Verwende den Eigenschafts-Escape \p{L} mit dem Flag u.
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
Finde jedes Unicode-Symbol (Währungen, Mathe, Emojis) im Text, ausgenommen Buchstaben und Ziffern.
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
Finde alle Wörter, die aus Buchstaben des kyrillischen Alphabets bestehen, unter Verwendung von `p{Script=Cyrillic}`.
Hinweis anzeigen
Verwende \p{Script=Cyrillic} mit dem Quantifizierer + und dem u-Flag.
Lösung nach 3 Versuchen verfügbar