PHP正则表达式匹配中文字符

来源:互联网 发布:阿里云空间控制面板 编辑:程序博客网 时间:2024/05/16 18:32

废话少说,直接上代码。

<?php$pattern = "/^[\x{4e00}-\x{9fa5}]*$/u";$str = "编程";if (preg_match($pattern,$str)) { echo "all chinese";} else { echo "not all chinese";} ?>
$pattern = "/^[\x{4e00}-\x{9fa5}]*$/u";  注意这里的u,表示utf-8编码。

上边这个正则表达式匹配的是utf-8编码的中文字符串,我试过将这个PHP文件改为gb2312编码,结果匹配不到。

中文在utf-8编码中的码段为:u4e00-u9fa5

在这里需要用\x来表示16进制,就像这样,\xhex,hex表示一个16进制数。当hex的位数为4位时,需要用{}括起来。


原创粉丝点击