Limiter l’entrée aux caractères alphanumériques dans n’importe quelle langue
Cette expression régulière limite l’entrée aux lettres et aux chiffres de n’importe quelle langue ou script :
^+$
Options de l’expression régulière : None
Saveurs de Regex : .NET, Java, XRegExp, PCRE, Perl, Ruby 1.9
Ceci utilise une classe de caractères qui inclut des raccourcis pour tous les points de code dans les catégories Lettre, Marque et Nombre décimal d’Unicode, ce qui suit la définition officielle d’Unicode d’un caractère alphanumérique. La catégorie Marque est incluse car les marques sont nécessaires pour les mots de nombreuses langues. Les marques sont des points de code destinés à être combinés avec d’autres caractères (par exemple, pour former une version accentuée d’une lettre de base).
Malheureusement, les catégories Unicode ne sont pas prises en charge par toutes les saveurs d’expressions régulières couvertes par ce livre. Plus précisément, cette regex ne fonctionnera pas avec JavaScript (à moins d’utiliser XRegExp), Python ou la saveur native de Ruby 1.8. L’utilisation de cette regex avec PCRE nécessite que PCRE soit compilé avec le support UTF-8, et les catégories Unicode peuvent être utilisées avec les fonctions preg
de PHP (qui reposent sur PCRE) si l’option /u
est ajoutée à la regex.
La regex suivante montre une solution de contournement pour Python:
^+$
Options de la regex : Unicode
Saveurs de regex : Python
Ici, nous contournons le manque de catégories Unicode dans Python en utilisant le drapeau UNICODE
ou U
lors de la création de l’expression régulière. Cela change la signification de certains tokens regex en leur faisant utiliser la table de caractères Unicode. ‘\w
‘ nous permet alors de trouver la plupart du temps une solution puisqu’il correspond aux caractères alphanumériques et au trait de soulignement. En utilisant son inverse ‘\W
‘ dans une classe de caractères négatifs, nous pouvons supprimer le trait de soulignement de cet ensemble. Les doubles négations comme celle-ci sont parfois très utiles dans les expressions régulières, bien qu’elles puissent être difficiles à comprendre. Python 3.x inclut par défaut les caractères non ASCII dans les raccourcis comme ‘\w
‘, et ne nécessite donc pas le drapeau UNICODE
.