我很难找到解决方案。
我想匹配包含2个以上<p></p>
代码的<a></a>
代码中的任何文本块
这是一个例子
<p style=""> (Reporting by Jason Lange; Additional reporting by <a href="http://blogs.reuters.com/search/journalist.php?edition=us&n=alistairbell&">Alistair Bell</a>, <a href="http://blogs.reuters.com/search/journalist.php?edition=us&n=eric.walsh&">Eric Walsh</a> and <a href="http://blogs.reuters.com/search/journalist.php?edition=us&n=peter.cooney&">Peter Cooney</a>; Editing by Ros Russell and <a href="http://blogs.reuters.com/search/journalist.php?edition=us&n=eric.beech&">Eric Beech</a>)</p>
我正在尝试制作一个匹配<p> </p>
标签内的整个文本块的正则表达式代码,但唯一的决定因素是<a></a>
TAGS的数量,我的意思是我没有想法文本是什么样的。
这是我试过的正则表达式代码:
<p.*?>(\s+|\n+|)((.*?|)<a.*?>(.*?|)</a>(.*?|)){2,}(\s+|\n+|)</p>
它不起作用。 有什么想法吗?
答案 0 :(得分:0)
通过将html解析为DOM而不是使用正则表达式来解决整个问题可能更好。
如果你必须你可以尝试一下这方面的事情(有一些边缘情况不适用于这个解决方案):
<p[^>]*>(.*?<a[^>]*>.*?<\/a[^>]*>.*?){2,}<\/p[^>]*>
这将匹配一个开头<p>
,然后是包含<a>
和<\a>
的文字至少两次,然后是结束</p>
答案 1 :(得分:0)