gpt4 book ai didi

javascript - JS RegExp 从第二次出现的

标签开始并包含其后的所有内容

转载 作者:行者123 更新时间:2023-11-30 09:12:38 26 4
gpt4 key购买 nike

使用正则表达式 (Javascript) 我需要找到第二个 <h2>在文章中标记并返回它之后的所有内容,包括第二个 <h2>标签。

我有一篇文章需要分成三个部分。我有前两部分,文章的第三部分是我上面描述的。

“标记”是开头 <h2>标签,这意味着我文章的第一部分从字符串的最开头开始,并在第一个 <h2> 之前停止标签,排除它。

第二部分包括第一部分<h2>标记并在第二个 <h2> 之前包括它之后的所有内容标签。

现在我需要一个正则表达式来找到第二个 <h2>标记,包括标记及其后的所有内容,直到字符串结束。

这是我到目前为止所得到的:

文章结构:

<p>Here's the first paragraph</p>
<p>Here's the second one</p>
<p>Here's the third one</p>
<a>A link maybe</a>

<h2>Here's the first H2 tag</h2>
<p>Another paragraph</p>
<a>A link maybe</a>
<img An image/>
<p>Another paragraph</p>

<h2>Here's the second H2 tag</h2>
<p>Another paragraph</p>
<a>A link maybe</a>
<img An image/>
<p>Another paragraph</p>

返回前三位的正则表达式<p></p> s 和 <a></a>并排除第一个 <h2>是:

const firstBreak = /.+?(?=\<h2>)/im;
this.articleBody.match(firstBreak)[0]

第二个正则表达式返回第一个 <h2>以及它之后的所有内容,直到第二个<h2> , 不包括第二个 <h2> :

const secondBreak = /.+?(?=\<h2>)/gim;
this.articleBodyMiddle = this.articleBody.match(secondBreak)[1];

第三个正则表达式让我感到困惑。这个包括第一个<h2> ,它之后的所有内容和第二个 <h2>以及它之后的一切:

const thirdBreak = /(\<h2>?.*)/gi;
this.articleBodyBottom = this.articleBody.match(thirdBreak)[0];

我只需要最后一个从第二个开始 <h2>并包含其后的所有内容。

感谢您的帮助!

最佳答案

可能会有帮助:

var str = `<p>Here's the first paragraph</p>
<p>Here's the second one</p>
<p>Here's the third one</p>
<a>A link maybe</a>

<h2>Here's the first H2 tag</h2>
<p>Another paragraph</p>
<a>A link maybe</a>
<img An image/>
<p>Another paragraph</p>

<h2>Here's the second H2 tag</h2>
<p>Another paragraph</p>
<a>A link maybe</a>
<img An image/>
<p>Another paragraph</p>`;

var result = str.match(/^[^]*?<h2>[^]*?(<h2>[^]*?)$/);
console.log(result[1]);

解释:

  • ^字符串的开头。
  • [^]*?<h2>匹配任何东西直到第一个 <h2>
  • 第二 [^]*?匹配第一个和第二个之间的任何内容 <h2>
  • (<h2>[^]*?)$捕获第二个 <h2>以及之后的一切。

关于javascript - JS RegExp 从第二次出现的 <h2> 标签开始并包含其后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57414558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com