正则是个好东西 正则不光可以对英语字符 特殊字符进行提取 对于中文字符 日语字符等等都可以提取 再也不要用(.*?)来匹配了 而且 也不准确!

放在例子先:取出下面字符中的所有中文字符:

$str="这%里是^测&试*中$心,欢.迎e你4的6到k来,我r们a呜呜呜we这y里w安安生生et一ef直在努力gr着找寻啊啊最佳gr的伙伴,希望您的$$%×××可以@推动他们GH团队高速发展!";$code="/[".chr(0xa1)."-".chr(0xff)."]+/";preg_match_all($code,$str,$arr);//GB2312汉字字母数字下划线正则表达式print_r($arr);

取出结果如下:

需要注意的这个是GBK的

下面再给出一个utf8的案例:

if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u','×××')){echo'全是汉字';}else{echo'不全是汉字';}//打印出"全是汉字"if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u','中国china')){echo'全是汉字';}else{echo'不全是汉字';}//打印出"不全是汉字",

然后 再在网上找到这么一段代码 大家可以看看:

<?phpheader('Content-type:text/html;charset=UTF-8');$forasp="forasp.cn网站制作学习网www.forasp.cn正则获取中文php获取中文";$cn="/(cn|php)([x{4e00}-\x{9fa5}]*)/u";preg_match_all($cn,$forasp,$return);var_dump($return);?>array(3){[0]=>array(3){[0]=>string(23)"cn网站制作学习网"[1]=>string(20)"cn正则获取中文"[2]=>string(15)"php获取中文"}[1]=>array(3){[0]=>string(2)"cn"[1]=>string(2)"cn"[2]=>string(3)"php"}[2]=>array(3){[0]=>string(21)"网站制作学习网hidden_content$"[1]=>string(18)"正则获取中文"[2]=>string(12)"获取中文"}}