我正在解析一些组织良好的字符串(HTML格式)以提取数据。格式就像(为方便起见添加了换行符):
<span><h2>Category 1</h2>
<p><strong><u>Entry 1</u></strong></p>
<ul><li>Some Data</li></ul>
<h2>Category 2</h2>
<p><strong><u>Entry 2</span>
<ul><li>Some Data</li></ul>
</span>
我打算查找<h2>
之间的所有字符串,并先提取</h2>
之后的字符串。搜索模式为/<h2>Tier.*?<\/h2>(.*?)(<h2>|<\/span>)/g
。但是每个匹配的子字符串都以<h2>
结尾。因此,不会提取下一个类别,而第三个类别块就可以了,因为存在新的搜索。
然后,我尝试贪婪地搜索不包含<g2>
的子字符串。模式为h2>Category.*?<\/h2>(^(h2).)*
。但是它不起作用。
答案 0 :(得分:1)
答案 1 :(得分:0)
您的问题不清楚,这让我很困惑。
但是我想你想要这个:
<h2>[^<]+<\/h2>(.+?<\/ul>)
演示:https://regex101.com/r/k16AoN/2
除此之外,您应该参考以下内容:What is the difference between HTML tags <div> and <span>?。也许您使用了错误的<span>
标记