<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中重复编号的捕获组全部内容,希望文章能够帮你解决regex – 在Perl中重复编号的捕获组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)