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

Pourquoi mon PHP Regex ne correspond-il pas aux lettres Unicode ?

DDD
Libérer: 2024-12-18 16:43:11
original
786 Les gens l'ont consulté

Why Doesn't My PHP Regex Match Unicode Letters?

Correspondance des caractères de lettre Unicode dans PCRE/PHP : compréhension révisée

Dans le but de développer un validateur de nom flexible, un modèle PHP a été développé pour correspondre aux caractères de lettre Unicode, aux apostrophes, aux traits d'union et aux espaces :

$namePattern = "/^([\p{L}'\- ])+$/";
Copier après la connexion

Cependant, ce modèle a rencontré problèmes lorsque vous rencontrez des caractères non-ASCII tels que Ă ou 张. Pour remédier à cela, les informations suivantes doivent être prises en compte :

1. Modificateur Unicode : Le principal problème est l'absence du modificateur u, qui est essentiel pour activer le support Unicode dans PCRE/PHP. Sans ce modificateur, les propriétés des caractères Unicode deviennent indisponibles.

2. Modèle corrigé : Le modèle corrigé, y compris le modificateur u, est le suivant :

$namePattern = '/^[-\' \p{L}]+$/u';
Copier après la connexion

En incorporant ces modifications, le modèle peut désormais correspondre efficacement aux caractères de lettre Unicode, garantissant ainsi la compatibilité avec une gamme plus large de entrées.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal