PHP正则匹配字符串中的标签
浏览:3107次 出处信息
如果标签里面有中文、英文、数字等混排,则需要对汉字进行特殊处理,由于PCRE不支持\U \P \L之类的perl字符串处理转义,使用16进制或者Unicode进行处理,范例如下:
$str = "之二宽阔的甘家口东#标签1#标签2 #标签3。#标签4,都发$1234 ¥xc,cvm , ¥12,dflksjf如何#标签5.x #tag6.cvxcv“";
preg_match_all('/#([a-zA-Z0-9\x7f-\xff]+)/', $str, $mat);
print_r($mat);
preg_match("/[\x{00a5}\x{ffe5}](\d+)/u", $str, $mat);
print_r($mat);
preg_match_all('/#([a-zA-Z0-9\x7f-\xff]+)/', $str, $mat);
print_r($mat);
preg_match("/[\x{00a5}\x{ffe5}](\d+)/u", $str, $mat);
print_r($mat);
得到的结果如下:
Array
(
[0] => Array
(
[0] => #标签1
[1] => #标签2
[2] => #标签3。
[3] => #标签4
[4] => #标签5
[5] => #tag6
)
[1] => Array
(
[0] => 标签1
[1] => 标签2
[2] => 标签3。
[3] => 标签4
[4] => 标签5
[5] => tag6
)
)
Array
(
[0] => ¥12
[1] => 12
)
补充说明:
双字节字符编码范围
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 (日文)
建议继续学习:
- 统计最近用过的linux命令 (阅读:6011)
- grep 正则表达式选项要记得转义 (阅读:6029)
- 正则表达式基础 (阅读:5775)
- 正则表达式的与或非 (阅读:5359)
- 标签?ID?还是CLASS? (阅读:4824)
- 学习Grep,Sed中的正则 (阅读:4814)
- 给微博打上标签 (阅读:4470)
- 推荐系统的问题 (阅读:4275)
- URL正则表达式 (阅读:4235)
- PHP 正则里面的两个重要技巧 (阅读:3989)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP对程序员的要求更高
后一篇:Unicode与字符汉字相互转换 >>
文章信息
- 作者:Michael 来源: Michael`s blog
- 标签: 标签 正则
- 发布时间:2012-04-19 23:31:24
建议继续学习
近3天十大热文
-
[928] WordPress插件开发 -- 在插件使用 -
[134] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 整理了一份招PHP高级工程师的面试题 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[51] 用 Jquery 模拟 select -
[50] 海量小文件存储 -
[50] Innodb分表太多或者表分区太多,会导致内 -
[50] 全站换域名时利用nginx和javascri -
[49] CloudSMS:免费匿名的云短信 -
[47] jQuery性能优化指南
