加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 06:15:28 所属栏目:大数据 来源:网络整理
导读:想象一下,我正在尝试使用Perl正则表达式解析以下html: h4test/h4 pnum1/p pnum2/p pnum3/ph4test/h4 pnum1/p pnum2/p pnum3/p pnum4/p 使用以下正则表达式: h4([ws]*)/h4(?:p([ws]+)/p)+ 编号组如何在Perl中构建? 1美元显然会包含 h4标记文本,但是当
想象一下,我正在尝试使用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>([ws]*)</h4>(?:<p>([ws]+)</p>)+

编号组如何在Perl中构建? 1美元显然会包含< h4>标记文本,但是当捕获组重复时,捕获的< p>标签然后发送到2美元3美元和4美元?是否有一种很好的方法可以捕获所有< p>数组中的标签?这甚至是perl支持的东西吗?或者我被强制为< h4>写一个正则表达式,然后为< p>创建另一个正则表达式?

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

解决方法

重复捕获组时,只有最后一个匹配组将存储在匹配器中.

如果要从重复组中获取每个匹配项,可以将replaceAll与回调函数一起使用,或者逐个迭代匹配项.

大多数语言也有“全部匹配”,我不知道如何在perl中做.这通常会将所有匹配项存储到数组中,但重复组仍仅作为最后匹配的组存储.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读