如何用正则提取中文字符

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,具体可以参考手册
posted @ 2017-01-12 17:45  windy_shyuan  阅读(3191)  评论(0编辑  收藏  举报