PHP Logo

Avec PHP, en utilisant le motif \w avec PCRE ([:alpha:] pour POSIX) dans le masque d’une Regex, il est possible que les accents de caractères ne soient pas identifiés sur certaines configurations (comme chez 1and1 par exemple). Il faut alors définir les informations de localisation avec la fonction setlocale(). Plus précisément sur la catégorie LC_CTYPE pour la classification et la conversion de caractères.

Attention le motif [a-z] d’une Regex ne comprend pas les accents.

Exemple :

<?php
setlocale(LC_CTYPE, 'fr_FR','fra'); //Fournit les informations de localisation

$string = 'hétérogénéité'; // chaine contenant des caractères accentués
var_dump(preg_match('#^[\w]+$#u',$string)); //return int(1)
?>

Grâce à la fonction setlocale(), la recherche de caractères accentués avec preg_match() et le motif \w retourne vrai.

Partagez cet article

Avez-vous trouvé cet article utile ?
Article utile ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *