Passer au contenu principal
eLearner.app
Module 5 · Leçon 4 sur 420/32 dans le cours~12 min
Leçons du module (4/4)

Unicode property escapes

Les classes \w, \d, \s en ASCII ne suffisent pas pour les textes français, italiens, grecs ou les emojis. Le JavaScript moderne (avec le drapeau u -- Unicode) propose des échappements de propriétés \p{...} : des classes sémantiques basées sur les propriétés Unicode des caractères.

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

\p{L} = "n'importe quelle Lettre (Unicode)" : comprend les lettres accentuées, les idéogrammes chinois, le cyrillique, le grec… tout. Les plus courants :

  • \p{L} -- lettre (de n'importe quel alphabet).
  • \p{N} -- nombre (chiffres arabes, romains, indiens…).
  • \p{P} -- ponctuation.
  • \p{S} -- symbole (mathématique, devise, emoji…).
  • \p{Z} -- espace/séparateur.
  • \p{Script=Latin} -- spécifiquement l'alphabet latin.
  • \p{Script=Greek} -- l'alphabet grec. Et ainsi de suite.

Et les versions inversées \P{L}multi_replace_file_content, \P{N}, …

Différence avec \w et \d

Code
\w correspond à [A-Za-z0-9_]              -- ASCII uniquement, pas de "caffe'"
\p{L}\p{N}_  avec le drapeau u            -- inclut les caractères accentués

Pour un analyseur robuste de texte français, préférez \p{L} à \w : citémulti_replace_file_content, café, garçon correspondent correctement en tant que mots.

Propriétés Unicode et compatibilité du navigateur

Les propriétés Unicode comme \\p{L} (Lettres) ou \\p{Script=Latin} étendent les classes aux alphabets internationaux. En JavaScript, elles nécessitent strictement le drapeau u (ou v), sinon le moteur lève une erreur de syntaxe.

À vous de jouer

Exercice#regex.m5.l4.e1
Tentatives : 0Chargement…

Trouvez chaque mot, y compris ceux avec des accents (citta', perche', e' …). Utilisez l'échappement de propriété \p{L} avec le drapeau u.

Chargement de l'éditeur…
Afficher l'indice

Remplacez \w+ par \p{L}+ et ajoutez le drapeau u (en plus de g).

Solution disponible après 3 tentatives

Exercice de révision

Exercice#regex.m5.l4.e2
Tentatives : 0Chargement…

Trouvez chaque symbole Unicode (devises, mathématiques, emojis) dans le texte, à l'exclusion des lettres et des chiffres.

Chargement de l'éditeur…
Afficher l'indice

\p{S} correspond à la catégorie Symbol d'Unicode. N'oubliez pas le drapeau u.

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#regex.m5.l4.e3
Tentatives : 0Chargement…

Trouvez tous les mots constitués de lettres de l'alphabet cyrillique à l'aide de `p{Script=Cyrillic}`.

Chargement de l'éditeur…
Afficher l'indice

Utilisez \p{Script=Cyrillic} avec le quantificateur + et le drapeau u.

Solution disponible après 3 tentatives