Regular expression - PCRE does not support \L, \l, \N, \P,
I need to use the following regular expression to validate some Asian characters
$regexp = "/^[\-'\u2e80-\u9fff\sa-zA-Z.]+$/"; // with warning
$regexp = "/^[\-'\sa-zA-Z.]+$/"; // without warning
preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X.
Do you know how to change the regular expression pattern so that I can validate the Asian characters from \u2e80-\u9fff
I am using the latest 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
PCRE does not support the \uXXXX
syntax. Use \x{XXXX}
instead. See here.
Your \u2e80-\u9fff
range is also equivalent to
\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}
Don't forget to add the u
modifier (/regex here/u
) if you're dealing with UTF-8. If you're dealing with another multi-byte encoding, you must first convert it to UTF-8.