PHP前端开发

如何使用正则表达式提取特定 HTML 结构中的内容?

百变鹏仔 2天前 #PHP
文章标签 如何使用

正则表达式匹配特定 html 结构

通过正则表达式,我们可以解析 html 文本并提取所需数据。以下是一个实例,展示了如何通过正则表达式匹配特定 html 结构并提取其中的内容:

给定以下 html 结构:

<div class="content">    <h1>标题xxxxx</h1>    <div class="block-1">        <ul class="article">            <li>文章标题1</li>            <li>文章标题2</li>            <li>文章标题3</li>        </ul>    </div>    <div class="block-2">        <ul class="article">            <li>文章标题1</li>            <li>文章标题2</li>            <li>文章标题3</li>        </ul>    </div>    <div class="block-3">        <ul class="article">            <li>文章标题1</li>            <li>文章标题2</li>            <li>文章标题3</li>        </ul>    </div></div>

我们希望提取 class 为 "block-2" 的 div 中所有 li 标签内的值。

立即学习“前端免费学习笔记(深入)”;

使用以下正则表达式可以实现上述目的:

/(?<=block-1.*<li>).*?(?=</li>.*block-2)/g

该正则表达式包含以下部分:

利用该正则表达式,我们可以如下提取所需数据:

let str = strhtml; // html 文本let removeenter = str.replace(/[]/g, "").replace(/[ ]/g, "").match(/(?<=block-1.*<li>).*?(?=</li>.*block-2)/g);console.log(removeenter);

输出结果:

["文章标题1", "文章标题2", "文章标题3"]