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

wufei1232024-10-31PHP11

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

正则表达式匹配特定 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-2)/g

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

  • (?):匹配以 class 为 "block-1" 的 div 内 li 标签之前的任何内容。
  • .*?:非贪婪匹配 li 标签的内容(包括子元素)。
  • (?=
  • .*block-2):匹配以 class 为 "block-2" 的 div 内 li 标签之后的任何内容。

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

let str = strhtml; // html 文本
let removeenter = str.replace(/[\r\n]/g, "").replace(/[ ]/g, "").match(/(?).*?(?=.*block-2)/g);
console.log(removeenter);

输出结果:

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

以上就是如何使用正则表达式提取特定 HTML 结构中的内容?的详细内容,更多请关注知识资源分享宝库其它相关文章!

发表评论

访客

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