如何用正则提取中文字符
1.首先得把字符串转成utf-8的格式:
$str = iconv(charset, 'utf-8', $str);//charset为你的字符原来的格式,包括:gb2312(简体中文),big5(繁体中文),utf8
2.使用preg_match_all进行提取:
preg_match_all('/[\x{4e00}-\x{9fa5}]+/u', $str, $r);
中文在utf8中代码是\u4e00-\u9fa5,但是是十六进制,所以转换成\x,这样得到的$r为二维数组,这个preg_match_all()函数第四个参数还有一个默认的PREG_PATTERN_ORDER,具体可以参考手册