preg_match_all 结果排序之PREG_SET_ORDER参数
来源:互联网 发布:mac os x 10.11 优化 编辑:程序博客网 时间:2024/04/28 10:12
转载自:http://www.caiguai.net/thread-21-1-1.html
今天在写通用采集类的时候,需要用到正则处理一些匹配,比较常用的当然就是preg_match_all了,以前也经常使用它来进行正则的匹配。刚在查看preg_match_all的手册的时候,注意到原来preg_match_all有一个PREG_SET_ORDER的参数,是用于设置匹配后返回的数组的顺序。
参数flags为以下3个:PREG_PATTERN_ORDER PREG_SET_ORDER PREG_OFFSET_CAPTURE 其中PREG_PATTERN_ORDER为默认参数。
我们用例子来看看PREG_PATTERN_ORDER和PREG_SET_ORDER的区别。
$matches_pattern 返回的数据为:
$matches_set 返回的数据为:
而根据我之前阅读别人代码,就一直认为应该这么来组合结果:
而PREG_SET_ORDER,就在于重新组合的数据,使得数组数据可以更方便的利用:
通过阅读一些优秀的源代码,可以汲取到很多先进的思想和接触一些函数和方法的独特用法,但是由于初印象很重要,如果开始的时候接触到的是一些不全或者不足的代码,久而久之你用习惯以后,就很难发现它存在的问题,甚至认为这就应该是这样。当初我也自问过,为什么preg_match_all的匹配结果不能按照上面第二种方式组合呢?甚至我还曾写过一个函数来重新组合这个结果为第二种数据结果。php手册很重要,它是php的官方支持文档、是一个标准,看来以后要多阅读才行。谨以此为戒!
阅读全文
0 0
- preg_match_all 结果排序之PREG_SET_ORDER参数
- preg_match_all 结果排序之PREG_SET_ORDER参数
- preg_match_all中第四个参数PREG_PATTERN_ORDER,PREG_SET_ORDER,PREG_OFFSET_CAPTURE之间的区别
- preg_match_all
- preg_match_all
- SQL之查询结果排序
- Hibernate之查询结果排序
- 影响搜索结果排序之:六个维度
- PHP之10个整数,从小到大排序,输出排序结果
- preg_match_all使用
- preg_match_all()匹配
- preg_match_all 总结
- search花絮之文本字符串搜索结果的排序
- 05-SQLite之order by对结果集进行排序
- Lucene3.0之结果排序(原理篇)
- 05-SQLite之orderby对结果集进行排序
- Lucene3.0之结果排序(原理篇)
- MyBatis动态参数为数组、list、Map,并使用oder by给结果排序
- Redis实现分布式session功能的共享
- Postgres中oid alias别名的使用
- MySQL创建外键出现 ERROR 1005: Can't create table (errno: 150)解决办法
- Centos 7.3 Install FusionPBX
- 快速排序算法
- preg_match_all 结果排序之PREG_SET_ORDER参数
- sublime text3 安装ctags实现函数跟踪跳转
- 有关Android去标题栏相关的知识
- jvisualvm安装visualgc插件(java.net网站已关闭)
- 企业服务总线
- React Router笔记 -- 摘自阮一峰大神博客
- python依赖包迁移
- RecyclerView 出现了 IndexOutOfBoundsException 异常
- Cell自定义registerNib:与registerClass: