php utf-8编码 正则匹配中文
2014-07-09 11:35
423 查看
首先unicode里面 中文的区域的0x4e00-0x9fa5
在java或者js这种已unicode编码处理字符串的编程语言中
/^[\u4e00-\u9fa5]+$/就可以判断一个字符串是否全部为中文
那么php中 字符的编码根据页面而定
页面是gbk的 字符编码就是gbk的 utf-8也同理
之前有一个表达式 “/^[\x80-\xff]+$/”
仅仅可以匹配是否含有非ascll字符
而汉字只是其中一个比较小的区域 不太精确
由于我的页面编码是utf-8的
于是把js的表达式搬到php中来
提示PCRE不支持”\u”和其他乱七八糟的一大堆东西
后来查资料了解到 php的正则有一种叫做字符组的东西
用\x{…}表示
于是把表达式改成”/^[\x{4e00}-\x{9fa5}]+$/”
又提示”\x”表达式后的数字太大
又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理
于是改成了”/^[\x{4e00}-\x{9fa5}]+$/u” 测试成功
所以php下正则匹配中文的表达式是 “/^[\x{4e00}-\x{9fa5}]+$/u”
这个仅适用于utf-8编码
在java或者js这种已unicode编码处理字符串的编程语言中
/^[\u4e00-\u9fa5]+$/就可以判断一个字符串是否全部为中文
那么php中 字符的编码根据页面而定
页面是gbk的 字符编码就是gbk的 utf-8也同理
之前有一个表达式 “/^[\x80-\xff]+$/”
仅仅可以匹配是否含有非ascll字符
而汉字只是其中一个比较小的区域 不太精确
由于我的页面编码是utf-8的
于是把js的表达式搬到php中来
提示PCRE不支持”\u”和其他乱七八糟的一大堆东西
后来查资料了解到 php的正则有一种叫做字符组的东西
用\x{…}表示
于是把表达式改成”/^[\x{4e00}-\x{9fa5}]+$/”
又提示”\x”表达式后的数字太大
又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理
于是改成了”/^[\x{4e00}-\x{9fa5}]+$/u” 测试成功
所以php下正则匹配中文的表达式是 “/^[\x{4e00}-\x{9fa5}]+$/u”
这个仅适用于utf-8编码
相关文章推荐
- UTF-8编码时,PHP如何正则匹配中文汉字?亲测可用
- php将中文转换成相应匹配的正则表达式(要求原文本为utf-8编码)
- PHP正则表达式 中文匹配 UTF-8编码下的的注意事项
- 正确的PHP匹配UTF-8中文的正则表达式
- 正确的PHP匹配UTF-8中文的正则表达式
- php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/[\x{4e00}-\x{9fa5}]/u
- php中utf-8编码下用正则表达式如何匹配汉字
- php中utf-8编码下用正则表达式如何匹配汉字
- 正则匹配时遇到的编码问题(unicode,gbk,utf-8,中文)
- php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/^[x{4e00}-x{9fa5}]+$/u
- PHP匹配UTF-8中文字符的正则表达式
- php中utf-8编码下用正则表达式如何匹配汉字
- php-utf-8编码下匹配中文
- php正则匹配utf-8编码的中文汉字
- php中utf-8编码下用正则表达式如何匹配汉字
- PHP正则匹配汉字(UTF-8和GBK两种编码)
- php中utf-8编码下用正则表达式如何匹配汉字
- PHP 正确匹配 UTF-8 中文的正则
- [转]Python正则表达式中匹配GBK/UTF-8编码中文字符_绝冬之地_百度空间
- php中utf-8编码和GB2312编码下用正则表达式匹配汉字