php 正则对于中文汉字字符的提取
正则是个好东西 正则不光可以对英语字符 特殊字符进行提取 对于中文字符 日语字符等等都可以提取 再也不要用(.*?)来匹配了 而且 也不准确!
放在例子先:取出下面字符中的所有中文字符:
$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)"获取中文"}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。