【PHP采集】php采集、[\s\S]的使用、正则获取 换行字符串或html块

本文介绍如何使用正则表达式匹配特定HTML元素内容的方法,重点讲解了换行匹配及多行内容提取技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、如图,我想要获取 红框框中的html内容,但是普通的正则一直获取不到:

 

2、原因剖析:因为html换行了,所以直接 /<h3 class=\"s_name\"(.+?)<span>/ 是获取不到的,必须要进行换行匹配

3、换行之后,退而求其次,干脆把整个 h3里面的内容都拿来

4、代码:

           preg_match_all('/<h3 class=\"s_name\">([\s\S]+?)<\/h3>/',$content,$matches);

           //var_dump($matches);die;
            if($matches){
                echo "景点名称 = ".$matches[1][0]."<br>";
            }

5、我们知道(.+?)这是个很强大的匹配式,嘿嘿,其实 [\s\S]比它还强大,几乎包含了一切。

6、如果想隔两行,取值  那怎么办呢? 别慌,照样使用这个[\s\S],它很强大的。

 

假设 我们想要获取 上面的 【井下探幽 来一场地下探索之旅】 文字,并且是以 【<div class=\"intro-info=i\"】为开始匹配点,那怎么办

解决代码:

preg_match_all('/<div class=\"intro-info-i\">[\s\S]+?<p>([\s\S]+?)<\/p>/',$content,$matches3);

打印 $matches3 看看即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值