PHP中如何使用正则表达式抓取a标签的内容

overme2个月前 (10-17)网页设计193

如下图所示,我爱自学小编通过正则表达式获取了下方所示的源码。那么如何获取a标签中“内容1”和“内容2”的值呢!

<ul>
<li><a href=”http://xxxxx/2022-11-18/207122075.html”  target=”_blank”>内容1</a></li>
<li><a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a></li>
</ul>

解决方法一,通过正则表达式的子模式功能

这里需要了解正则匹配的子模式功能:正则表达式中,可以使用“(”和“)”将模式中的子字符串括起来,以形成一个子模式。将子模式视为一个整体时,那么它就相当于一个单个字符。比如:正则表达式 /<b>(.*)</b>/,可以匹配内容:<b>内容1</b>,其中内容1就是表达式中(.*)对应的内容。(.*)匹配的内容就是这个正则表达式的子组。

$subject = ‘<a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a>’;

$pattern = ‘/<a[^>]*>(.*)<\/a>/i’;    // 这是匹配的正则表达式,“(”和“)”匹配的内容,是子组匹配模式

preg_match_all($pattern, $subject, $matches);    //  开始匹配,该函数会把匹配结果放入 $matches数组中,$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

print_r($matches[1]);

实现方法二:如果不理解正则的子模式,可以使用正则匹配后截取字符的方式

$subject = ‘<a href=”http://xxxxx/2022-11-18/207122076.html”  target=”_blank”>内容2</a>’;

$pattern = ‘/>.*</i’;    // 这是匹配的正则表达式获取包含“>链接内容<”的内容

preg_match_all($pattern, $subject, $matches);    //

print_r(substr($matches[0][0],1,7));

推荐使用方法一

相关文章

PHP判断是否包含指定字符串的方法

1、strstr 函数查找指定字符串在目标字符串中首次出现的位置,该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。 语法:strstr(string,searc...

PHP结合阿里云SMS功能实现短信发送

阿里云有SMS短信发送功能,申请服务和接口就行了,会收取一定的费用。 点击访问 阿里云SMS短信服务平台 以下是基于阿里云SMS的短信发送PHP API代码 <?php /* *...

网站开发中常用的PHP代码

PHP批最取得checkbox的值 1、命名 代码如下: <input type=’checkbox’ name=’checkbox[]‘ value=$dwmyrow[banzhu] /...


		PHP如何原样输出XML样式的Sitemap数据

PHP如何原样输出XML样式的Sitemap数据

网站运营过程中,将网站的资源以Sitemap的形式提交给搜索引擎是非常必要的。本文分享通过php代码获取Discuz系统中未加入Sitemap的链接,然后在HTML原样输出XML样式的Sitema...

htmlentities函数的作用及使用方法

htmlentities函数的作用? htmlentities用于将字符串转换为 HTML 转义字符,说的更加通俗一点,就是能让字符串按原有样式输出到html中。 htmlentities函数使...


		通过PHP获取下拉列表中的多个选定值

通过PHP获取下拉列表中的多个选定值

如本文摘要所述,本文小编通过具体示例给大家分享使用php获取下拉列表中的多个选定值的实现方法。 首先,我们通过HTML代码来创建测试的基础SELECT选择框。 <form method...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。