Identifier les accents avec Regex et PHP

0
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.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here