PHP正则表达式核心技术完全详解 第6节 正则分割函数
作者:极客小俊 一个专注于web技术的80后
我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人!
CSDN@极客小俊,原创文章, B站技术分享
个人博客: cnblogs.com
前端html+css+javascript技术讨论交流群: 281499395
后端php+mysql+Linux技术交流群: 855256321
PHP正则分割函数
preg_split() 通过一个正则表达式分隔字符串, 返回数组!
参数列表:
参数1:正则表达式
参数2:字符串
参数3: limit参数一般指定分割多少个数,但是返回数组的最后一个[子串]元素将包含所有剩余没有分割的部分
参数4: 一些默认常量的配置、并且可以以位或运算 | 进行组合使用、
如: PREG_SPLIT_NO_EMPTY如果这个标记被设置, preg_split() 将进返回分隔后的非空部分!
返回值: 返回通过正则边界分隔字符串后得到的数组!
特别注意:被匹配到的分隔字符串不会被返回!
例1: 使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语 代码如下:
$pattern='/[\s,]+/';
$subject='hypertext language, programmimg';
$result=preg_split($pattern, $subject,3,PREG_SPLIT_NO_EMPTY);
show($result);
例2: 使用#号字符来分割一个字符串
比如我们有时候会得到一个路径的字符串 按照一定规则进行连接,我们需要把他们拆分开,得到我们想要的连接数据
代码如下:
$pattern='/#/';
$subject='upload/1.jpg#upload/2.jpg#upload/3.jpg#upload/4.jpg#upload/5.jpg#upload/6.jpg';
$result=preg_split($pattern, $subject,-1,PREG_SPLIT_NO_EMPTY+PREG_SPLIT_OFFSET_CAPTURE);
show($result);
例3:匹配div标签 取出div中的内容
代码如下:
$subject='<div style="border:1px solid red">
<a href="http://www.baidu.com">百度</a> <span style="color:red">测试数据1</span>
</div>
<div style="border:5px solid blue">
<a href="http://www.sina.com">新浪</a> <span style="color:blue">测试数据2</span>
</div>';
$pattern='/(<div\s.+?>)|(<\/div>\s*)/is';
$result=preg_split($pattern, $subject,-1,PREG_SPLIT_NO_EMPTY);
show($result);
"点赞" "评论" "收藏"