我想制作一个python脚本,它可以:
<span class="toujours_cacher">(.)*?</span>
我使用这个:
r"(?i)\<span (\n|\t| )*?class=\"toujours_cacher\"(.|\n)*?\>(.|\n)*?\<\/span\>"
然而,在我的一些网页上,我发现了这种表达
<span class="toujours_cacher">*
<span class="exposant" size="1">*</span> *</span>
所以我试着这样做:
r"(?i)\<span (\n|\t| )*?class=\"toujours_cacher\"(.|\n)*?\>(.|\n)*?(\<\/span\>|\<\/span\>(.|\n)*?<\/span>)"
这是不好的,因为当两者之间没有跨度时,它会寻找下一个
我需要删除与类“toujours\u cacher”的跨度之间的内容。 有没有办法用一个RE来做
我很高兴听到您的任何建议:)
这在正则表达式中是不可能的-它们不能将分隔符匹配到任意深度。您需要转而使用实际的解析器
请不要使用正则表达式来解析HTML,因为它是不规则的。你可以用BeautifulSoup。下面是BeautifulSoup查找标记
<span class="toujours_cacher">(.)*?</span>
的示例这将返回具有类
toujours_cacher
的所有span
标记的列表相关问题 更多 >
编程相关推荐