Maison >développement back-end >tutoriel php >Pourquoi mon PHP Regex ne correspond-il pas aux caractères Unicode ?

Pourquoi mon PHP Regex ne correspond-il pas aux caractères Unicode ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 17:26:09496parcourir

Why Doesn't My PHP Regex Match Unicode Characters?

Correspondance des caractères de lettre Unicode dans PCRE/PHP

Pour tenter de valider les noms en PHP, un modèle est implémenté en utilisant l'expression régulière suivante :

/^([\p{L}'\- ])+$/

Cependant, la validation ne parvient pas à correspondre aux caractères Unicode tels que Ă ou张.

Analyse

Le problème vient de l'omission du modificateur "u" dans l'expression régulière. Ce modificateur est nécessaire pour activer la correspondance des caractères Unicode et éviter toute confusion avec les modèles ASCII uniquement.

En modifiant le modèle pour inclure le modificateur "u":

/^[-\' \p{L}]+$/u

l'expression régulière peut désormais correctement faire correspondre les caractères des lettres Unicode, ainsi que les apostrophes, les traits d'union et les espaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn