我有一个类似 html 的字符串,我想从中提取数据。
s="<ul><li>this is a bullet lev 1 </li><li><ul><li><strong> this</strong> is a bullet lev </li></ul></li><li> <ul><li><ul><li>this is a bullet lev 3</li></ul></li></ul></li></ul></ul><strong></li>
"
我想提取包含 <li> 元素的所有数据的内容,这些元素在它们之间包含诸如“这是一个子弹 lev 1”之类的元素,而不是像在多级元素中那样包含其他 <li> 的元素,例如
<li><ul><li><strong> this</strong> is a bullet lev </li></ul></li>
我为此写了一个正则表达式
<li>([\w &;/<>]*?)</li>
然而,这最终也会拉取不需要的数据
<li>this is a bullet lev 1 </li>
<li><ul><li><strong> this</strong> is a bullet lev </li>
<li> <ul><li><ul><li>this is a bullet lev 3</li>
虽然我想让它拉
<li>this is a bullet lev 1 </li>
<li><strong> this</strong> is a bullet lev </li>
<li> <ul><li><ul><li>this is a bullet lev 3</li>
这个想法是我想排除提取数据中已经有 <li> 的任何结果并继续前进。
从研究中我了解到我可能必须使用前瞻或后视,我尝试了几次但无济于事。
有什么线索吗?我正在使用 python,它内置了 re 模块。