php - support - regex utf8



php-expression régulière-PCRE ne supporte pas \ L, \ l, \ N, \ P, (1)

Je dois utiliser l'expression régulière suivante pour valider certains caractères asiatiques

 $regexp = "/^[\-'\u2e80-\u9fff\sa-zA-Z.]+$/"; // with warning

 $regexp = "/^[\-'\sa-zA-Z.]+$/";   // without warning

preg_match () [function.preg-match]: La compilation a échoué: PCRE ne prend pas en charge \ L, \ l, \ N, \ P, \ p, \ U, \ u ou \ X.

Savez-vous comment changer le modèle d'expression régulière pour que je puisse valider les caractères asiatiques à partir de \u2e80-\u9fff

J'utilise le dernier XAMPP

Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

Je vous remercie


PCRE ne prend pas en charge la syntaxe \uXXXX . Utilisez plutôt \x{XXXX} . Voir here

Votre \u2e80-\u9fff est également équivalente à

\p{InCJK_Radicals_Supplement}\p{InKangxi_Radicals}\p{InIdeographic_Description_Characters}\p{InCJK_Symbols_and_Punctuation}\p{InHiragana}\p{InKatakana}\p{InBopomofo}\p{InHangul_Compatibility_Jamo}\p{InKanbun}\p{InBopomofo_Extended}\p{InKatakana_Phonetic_Extensions}\p{InEnclosed_CJK_Letters_and_Months}\p{InCJK_Compatibility}\p{InCJK_Unified_Ideographs_Extension_A}\p{InYijing_Hexagram_Symbols}\p{InCJK_Unified_Ideographs}

N'oubliez pas d'ajouter le modificateur u ( /regex here/u ) si vous avez affaire à UTF-8. Si vous utilisez un autre encodage multi-octets, vous devez d'abord le convert en UTF-8.





php