【发布时间】:2017-02-22 15:18:09
【问题描述】:
我正在尝试弄清楚如何用<p>TEXT</p> 标签替换所有<a href....>TEXT</a> 标签。
我已经开始寻找<a href...> 和</a> 的模式,所以我可以相应地替换它们。不幸的是,它似乎与最接近的字符串不匹配。
>>> s = '<td class="tt"><a href="#">Alert types</a></td> <td class="info">Vibration</td> </tr><tr><td class="tt"><a href="#">Sound</a>'
>>> re.sub('<a h.*>','<p>',s)
返回
'<td class="tt"><p>'
代替:
'<td class="tt"><p>Alert types</a></td> <td class="info">Vibration</td> </tr><tr><td class="tt"><p>Sound</a>'
你知道如何让它匹配.*之间最接近的字符串吗?
【问题讨论】:
-
你的正则表达式有
h.*所以任何东西,试试<a h[^>]*> -
使用像lxml这样的HTML解析器和序列化器。
-
@depperm 我的方法是“我不在乎” 之间的内容,但它必须是最接近的匹配,所以 是的,但是 ...> 不是
-
@CésarLandesa 如果我想做很多事情,我会考虑其他事情,但这是我唯一想要的,所以我希望这是一个最简单和轻量级的解决方案......跨度>