PHP正则表达式匹配中文
php中目前支持的是由PCRE库提供的正则函数,以“preg_”为前缀命名,在PCRE中若是要匹配中文字符,需要将模式修饰符设置为“u”。
u (PCRE_UTF8)此修正符打开一个与 perl 不兼容的附加功能。 模式和目标字符串都被认为是 utf-8 的。无效的目标字符串会导致 preg_* 函数什么都匹配不到;无效的模式字符串会导致 E_WARNING 级别的错误。 PHP 5.3.4 后,5字节和6字节的 UTF-8 字符序列被考虑为无效(resp. PCRE 7.32007-08-28)。 以前就被认为是无效的 UTF-8。
故匹配中文时,模式如下:
$pattern = '/[\x{4e00}-\x{9fa5}]+/u';