正则经验
2015-07-16 17:40
621 查看
PHP正式不支持\u, 用\x代替,不过原理是一样的,每个字节用一个16进制数字表达,utf-8三字节,gb二字节。
utf-8: [\x80-\xff]{3}
gb: [\x80-\xff]{2}
$str="哈噢哦呃哇哟"; //utf8
$str=preg_replace('/[\x80-\xff]{3}/','呵',$str);
结果: 呵呵呵呵呵呵
分别获取中英混合字符串的“词”,已解决全角空格
$str='你是 我的小苹果 how are you? 弄啥呢 记得q我 q你妹 @陈sir'
preg_match_all('/([^ ]*?[\x{4e00}-\x{9fa5}]+[^ ]*)|(([0-9A-Za-z~@#\$%\^&\*\(\)\-_\+=\[\]{}:;\"\'\|\\\<>,\.\?\/]+ ?)+)/u',$str,$match);
//结果:
utf-8: [\x80-\xff]{3}
gb: [\x80-\xff]{2}
$str="哈噢哦呃哇哟"; //utf8
$str=preg_replace('/[\x80-\xff]{3}/','呵',$str);
结果: 呵呵呵呵呵呵
分别获取中英混合字符串的“词”,已解决全角空格
$str='你是 我的小苹果 how are you? 弄啥呢 记得q我 q你妹 @陈sir'
preg_match_all('/([^ ]*?[\x{4e00}-\x{9fa5}]+[^ ]*)|(([0-9A-Za-z~@#\$%\^&\*\(\)\-_\+=\[\]{}:;\"\'\|\\\<>,\.\?\/]+ ?)+)/u',$str,$match);
//结果:
[0] => array(7) { [0] => string(6) "你是" [1] => string(15) "我的小苹果" [2] => string(13) "how are you? " [3] => string(9) "弄啥呢" [4] => string(10) "记得q我" [5] => string(7) "q你妹" [6] => string(7) "@陈sir" }
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- Java简单字符串插值实现
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- C# 正则判断一个数字的格式是否有逗号的代码
- C#常用正则大全分享
- ASP.NET、ASP、PHP、JSP之间有什么区别?