Recherche…


Correspondance des lettres dans différents alphabets

Les exemples ci-dessous sont donnés en Ruby, mais les mêmes appariements devraient être disponibles dans toutes les langues modernes.

Disons que nous avons la chaîne "AℵNaïve" , produite par Messy Artificial Intelligence. Il est composé de lettres, mais \w matcher générique ne correspondra pas beaucoup:

▶ "AℵNaïve"[/\w+/]
#⇒ "A"

La manière correcte de faire correspondre une lettre Unicode avec des marques combinées consiste à utiliser \X pour spécifier un cluster grapheme. Il y a une mise en garde pour Ruby, cependant. Onigmo, le moteur de regex pour Ruby, utilise toujours l'ancienne définition d'un cluster grapheme . Il n’a pas encore été mis à jour dans Extended Grapheme Cluster, comme défini dans l’ Annexe 29 de la norme Unicode .

Donc, pour Ruby, nous pourrions avoir une solution de contournement: \p{L} ira presque bien, sauf que cela échoue sur l'accent diacritique combiné sur i :

▶ "AℵNaïve"[/\p{L}+/]
#⇒ "AℵNai"

En ajoutant les «symboles de marque» à l’expression, nous pouvons enfin tout faire correspondre:

▶ "AℵNaïve"[/[\p{L}\p{M}]+/]
#⇒ "AℵNaïve"


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow