首先,我痛苦地意识到用regex解析HTML不是“好形式”。但是,我处理的是格式不好的HTML,当使用lxml等工具进行解析时无法验证。你知道吗
我的目标是只选择包含br元素的span元素。以下是我的尝试:
设置样本输入
import re
xx= '<div> <span>123</span> <span>456 <br> 789</span> </div>'
这正确地标识了两个跨距,但仅当?存在。我不明白为什么会这样。你知道吗
re.findall('<span>.*?</span>', xx)
['<span>123</span>', '<span>456 <br> 789</span>']
我本以为这只会选择带有br标记的span,但是相反,它会从第一个span选择开始span标记,从最后一个span选择结束span标记,只选择一个条目。你知道吗
re.findall('<span>.*?<br>.*?</span>', xx)
['<span>123</span> <span>456 <br> 789</span>']
请解释为什么我看到这种行为。你知道吗
根据您的其他要求,您可以执行以下操作
要只将span与
<br>
匹配,一般来说,请按照注释的建议使用一些解析器。你知道吗相关问题 更多 >
编程相关推荐