
本文介绍如何用PHP正则表达式从HTML代码中提取特定内容,主要解决两个问题:提取特定class属性的div标签内容,以及提取该div标签内所有a标签的href属性值。
问题一:提取class属性为“box list channel max-border list-text-my”的div标签内容
假设HTML代码片段如下:
<div class="box list channel max-border list-text-my">
<ul><li><a href="https://www.php.cn/link/b999a556e5f6186b8cba2dd848c22711" title="">[2022-12-13]新闻1</a></li>
<li><a href="https://www.php.cn/link/7c1373b8fec010dba9b2cf06e7b232a7" title="">[2022-12-13]新闻2</a></li>
<li><a href="https://www.php.cn/link/afe7064469e1509a007b92118aee4524" title="">[2022-12-13]新闻3</a></li>
</ul></div>
我们需要提取<div class="box list channel max-border list-text-my">标签内的所有内容。 可以使用以下PHP正则表达式:<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>
<pre class="brush:php;toolbar:false;">$html = '<div class="box list channel max-border list-text-my">
<ul><li><a href="https://www.php.cn/link/b999a556e5f6186b8cba2dd848c22711" title="">[2022-12-13]新闻1</a></li>
<li><a href="https://www.php.cn/link/7c1373b8fec010dba9b2cf06e7b232a7" title="">[2022-12-13]新闻2</a></li>
<li><a href="https://www.php.cn/link/afe7064469e1509a007b92118aee4524" title="">[2022-12-13]新闻3</a></li>
</ul></div>';
preg_match('/<div class="box list channel max-border list-text-my">([\s\S]*?)<\/div>/', $html, $matches);
$divcontent = $matches[1];
echo $divcontent;</pre>
<p>此正则表达式精确匹配目标div标签及其内容。<code>[\s\S]*? 匹配任意字符(包括换行符),? 保证非贪婪匹配,只匹配到最近的











