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
Libérer: 2024-12-18 17:26:09
original
496 Les gens l'ont consulté

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}'\- ])+$/
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal