gpt4 book ai didi

regex - 在 Perl 中重复编号的捕获组

转载 作者:行者123 更新时间:2023-12-01 09:48:53 25 4
gpt4 key购买 nike

假设我正在尝试使用 Perl 正则表达式解析以下 html:

<h4>test</h4> <p>num1</p> <p>num2</p> <p>num3</p>
<h4>test</h4> <p>num1</p> <p>num2</p> <p>num3</p> <p>num4</p>

使用以下正则表达式:

<h4>([\w\s]*)</h4>(?:<p>([\w\s]+)</p>)+

在 Perl 中如何组织编号的组? $1 显然包含 <h4>标记文本,但是当捕获组重复时,捕获的是 <p>标签然后发送到 $2 $3 和 $4?有没有一个好的方法来捕获所有的<p>数组中的标签?这甚至是 perl 支持的东西吗?还是我被迫为 <h4> 编写一个正则表达式? ,然后是 <p> 的另一个的?

(我知道我可以使用 HTML::Tree 或类似的东西来解析 html,但这只是我用来帮助描述问题的简化示例,我真的只对如何重复编号捕获感兴趣小组在 Perl 中工作)

最佳答案

当您重复捕获组时,匹配器中只会存储最后匹配的组。

如果您想从重复组中获取每个匹配项,您可以使用带有回调函数的 replaceAll 或逐个迭代匹配项。

大多数语言也有一个“全部匹配”,我不知道在 perl 中该怎么做。这通常会为您将所有匹配项存储到一个数组中,但重复组仍仅存储为最后一个匹配组。

关于regex - 在 Perl 中重复编号的捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16800176/

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