PHP匹配中文详解

php中utf-8编码下用正则表达式匹配汉字的最终正确表达式:/^[\x{4e00}-\x{9fa5}]+$/u

1 $str = "php编程";
2 if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
3   print("该字符串全部是中文");
4 } else {
5   print("该字符串不全部是中文");
6 }
 1 /**
 2 获取字符中出现的所有中文字符
 3 */
 4 $string = "php编程";
 5 preg_match_all("/[\x{4e00}-\x{9fa5}]/iu", $string, $matches);
 6 var_dump($matches);
 7 //output:
 8 ---------- PHP ----------
 9 array(1) {
10   [0]=>
11   array(2) {
12     [0]=>
13     string(3) "编"
14     [1]=>
15     string(3) "程"
16   }
17 }

模式修正符: u  (PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。
本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。

不同字符集下的编码范围

双字节字符编码范围

1. GBK (GB2312/GB18030)
x00-xff GBK双字节编码范围
x20-x7f ASCII
xa1-xff 中文 gb2312
x80-xff 中文 gbk

2. UTF-8 (Unicode)

u4e00-u9fa5 (中文)
x3130-x318F (韩文
xAC00-xD7A3 (韩文)
u0800-u4e00 (日文)

更多内容参考

http://www.189works.com/portal.php?mod=view&aid=48512

http://www.111cn.net/phper/31/42203.htm

转载于:https://www.cnblogs.com/phpfans/archive/2012/06/07/2540070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值