PHP正则匹配字符串中的标签
浏览:2558次 出处信息
如果标签里面有中文、英文、数字等混排,则需要对汉字进行特殊处理,由于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命令 (阅读:5322)
- grep 正则表达式选项要记得转义 (阅读:5186)
- 正则表达式基础 (阅读:5053)
- 正则表达式的与或非 (阅读:4641)
- 标签?ID?还是CLASS? (阅读:4434)
- 给微博打上标签 (阅读:3969)
- 学习Grep,Sed中的正则 (阅读:3965)
- 推荐系统的问题 (阅读:3718)
- URL正则表达式 (阅读:3533)
- 正则表达式简要入门 (阅读:3427)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:PHP对程序员的要求更高
后一篇:Unicode与字符汉字相互转换 >>
文章信息
- 作者:Michael 来源: Michael`s blog
- 标签: 标签 正则
- 发布时间:2012-04-19 23:31:24
建议继续学习
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [65] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则