PHP preg_match_all详解
int preg_match_all ( string pattern, string subject, array &matches [, int flags] )
最近在研究爬虫,对抓取的页面进行解析,需要用到这个函数。由于之前对这个函数只是一知半解,结果被狠狠地坑了一把。
flags 是可省略的,默认值是PREG_PATTERN_ORDER,还可以有其他值,这个会影响matches的内容形式。但这个不重要,只需知道缺省flags时,matches是什么样子就可以了。
pattern和subject就不多说了,重点说一说matches。
matches(注意这里是引用)是一个二维数组,matches[0] 是整个pattern匹配的结果。matches[1] 是第一个子模式(正则表达式中的子模式,就是圆括号括起来的部分)匹配的结果,matches是 第二个子模式的匹配结果。
而且,这个函数的返回值是整个pattern匹配到的结果数量。
现举例说明:
<?php
$pattern = "/<[^>]+>(.*)<\/[^>]+>/U";
$subject = "<b>example:</b><div align = left>this is a test</div>";
preg_match_all($pattern,$subject,$out);
print_r($out);
?>
注意$pattern中标红的就是子模式。
注意这个结果的形式,array[0]是整个pattern匹配到的结果,array[1]是pattern中子模式 (.*) 所匹配到的结果。但是array[1]匹配的结果是和array[0]中的结果相对应。
PHP preg_match_all详解相关推荐
- php调用C代码的方法详解和zend_parse_parameters函数详解
来源:http://my.oschina.net/Customs/blog/490873 http://blog.csdn.net/super_ufo/article/details/3863731 ...
- php 两个单词 正则表达式字符前_PHP正则表达式核心技术完全详解 第3节
PHP 正则表达式核心技术详解 第3节 我们在第2节中学习了有关正则的原子.元字符.原子表.转义字符等重要知识点, 这一节我们来讲一下正则中的量词.断言匹配.逻辑匹配.等重要知识! 1 量词 量词: ...
- php preg_match 只匹配第一个字符_PHP正则表达式核心技术完全详解 第3节
PHP 正则表达式核心技术详解 第3节 我们在第2节中学习了有关正则的原子.元字符.原子表.转义字符等重要知识点, 这一节我们来讲一下正则中的量词.断言匹配.逻辑匹配.等重要知识! 1 量词 量词: ...
- 攻防世界web进阶区Web_php_wrong_nginx_config详解
攻防世界web进阶区Web_php_wrong_nginx_config详解 题目 详解 题目 打开发现无论我们输入什么他都会弹出网站建设不完全 那么我们使用御剑进行扫描,扫描到了admin和robo ...
- php中正则表达式详解,php正则表达式详解
php正则表达式详解 一.贪婪模式与非贪婪模式 贪婪模式:可以这样认为,就是在整个表达式匹配成功的前提下,尽可能多的匹配,也就是所谓的"贪婪",通俗点讲,就是看到想要的,有多少就捡 ...
- PHP数组foreach遍历输出例子详解
通常我们对于数据遍历会使用到foreach来操作当然也有使用到while list each函数来实现了,但在方便面上来看foreach更简洁好用性能也非常的不错,下面本人整理了一款在开发应用中for ...
- c语言 字符串 strncpy,详解c语言中的 strcpy和strncpy字符串函数使用
详解c语言中的 strcpy和strncpy字符串函数使用 strcpy 和strcnpy函数--字符串复制函数. 1.strcpy函数 函数原型:char *strcpy(char *dst,cha ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
最新文章
- springboot redis
- 话说Ubuntu和FreeBSD将要合成一个新的版本:UbuntuBSD
- 加密与解密、OpenSSL(SSL/TLS)、OpenSSH(ssh)、dropbear
- hive无法执行带where语句的SQL
- 统一建模语言UML要点全面简析
- 计算机相关专业学习经验总结
- Java 字符串,byte[],16进制的字符串互转
- IBM调低DB 2价格,Oracle提高MySQL使用成本
- 使用Apollo通过WebSocket通过STOMP轻松进行消息传递
- 【CodeForces - 260B 】Ancient Prophesy (暴力匹配,BF算法,日期字符串)
- @Autowired @Primary @Qualifier
- 安装SQL Server 2012遇到“需要更新的以前的Visual Studio 2010实例.”
- 2小时部署实时反欺诈深度学习模型 —— IBM主机机器学习平台社区版简介
- 怎么根据分隔符号将Excel数据换行复制
- 绕过微信客户端授权,获取网页源码
- 服务器ldb文件可以删除,Access数据库锁死,出现.ldb文件解决办法
- 2022-2028全球与中国汽车空调冷凝器市场现状及未来发展趋势
- 《STL》— NYOJ STL练习 习题汇总
- 蓝字冲销是什么意思_会计记账,贷方红字,贷方蓝字什么意思
- 海岸TDM平台性能-续