php正则表达匹配中文汉字

正则匹配中文汉字根据字符编码不同而略有区别:

  • GBK编码 - [\x80-\xff]+ 

  • GB2312编码 - [x\a1-\xff]+

  • UTF-8编码 - [\x{4e00}-\x{9fa5}]+/u


 
示例:
1、匹配UTF8编码字符中的汉字:
<?php
// 删除字符串中所有汉字
echo preg_replace("#[\x{4e00}-\x{9fa5}]#u", "", '爱E族: aiezu.com');
// E: aiezu.com

// 删除字符串中所有非汉字字符
echo preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", '爱E族(aiezu.com)');
// 输出: 爱族
 
2、匹配GB2312编码字符中的汉字:
<?php
//GB2312替换中文为空,输出:Eaiezu.com
echo preg_replace("#[\xa1-\xff]+#", "", '爱E族(aiezu.com)');

//GB2312替换非中文为空,输出:爱族()
echo preg_replace("#[^\xa1-\xff]+#", "", '爱E族(aiezu.com)');

 3、匹配GBK编码字符中的汉字:
<?php
// GBK编码删除中文字符,输出:Eaiezu.com
echo preg_replace("#[\x80-\xff]+#", "", '爱E族:aiezu.com');

//GBK编码删除非中文字符,输出:爱族:
echo preg_replace("#[^\x80-\xff]+#", "", '爱E族:aiezu.com');

0 个评论

要回复文章请先登录注册