正则表达式:在单个特定标签内获取多个相同标签的内容

时间:2019-07-17 12:31:36

标签: regex

我发现了很多类似的问题,但是这些问题并不能回答我的问题,也不能进行正则表达式,因此,这里是这样:

获得此示例代码:

<ul>
    <li>one</li>
    <li class="red">two</li>
    <li>three</li>
    <li class="red">four</li>
</ul>
<ul>
    <li>five</li>
    <li class="red">six</li>
    <li>seven</li>
    <li class="red">eight</li>
</ul>

我正在寻找一个正则表达式,它将使用ul来抓取前liclass="red"的内容,因此返回“两个”和“四个”

我需要使用使用正则表达式的工具来抓取网站,因此我没有其他选择。因此,我的问题。

1 个答案:

答案 0 :(得分:0)

我不建议在这里使用正则表达式:

您可以通过链接两个正则表达式来实现:

  1. ^[\w\W]*?(<li>[\w\W]*?)<\/ul>[\w\W]*$替换为$1

  2. ^[\w\W]*?class="red"[\w\W]*?>([\w\W]*?)<\/li>替换为$1

(PCRE)