You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正确删除CSV中指定内容?解决re.sub过度匹配问题

解决正则贪婪匹配导致误删HTML内容的问题

嘿,我完全懂你碰到的这个坑!你现在的问题根源就是正则表达式里的贪婪匹配——默认情况下.*会尽可能多地匹配字符,所以它会从第一个" target="_blank">一直匹配到文本里最后一个</a>,把中间所有内容都删掉了,这就导致了误删后续的链接内容。

快速解决方案:改用非贪婪匹配

把你的正则表达式里的.*改成.*?,也就是启用非贪婪模式,它会尽可能少地匹配字符,找到第一个</a>就停止匹配。修改后的代码如下:

new_html_code = re.sub(r'" target="_blank">.*?</a>', " ", new_html_code)

这里加上r前缀表示原始字符串,能避免引号等特殊字符的转义问题,让正则表达式更易读。

效果验证

用你提供的示例文本测试:

" target="_blank">https://upload.cc/i1/2020/02/20/g7no03.jpeg

之前大家落咗名嘅口罩訂購-Waiting List:
https://docs.google.com/forms/d/1gu33q5_XO3PqhwRm7rGLQrwNuScfDlvPvCCHRd81Fdk

無收到PM訂口罩都可以訂搓手液, 要填呢張form
https://forms.gle/YmQewsz1z689QtKx7

修改后的正则只会匹配并删除包含img标签的那个<a>段,后面的口罩订购链接、搓手液表单链接都会完整保留,不会再被误删。

额外小贴士:复杂HTML处理更推荐解析库

如果你的HTML结构比较复杂(比如有嵌套标签、属性变化等),用正则处理HTML其实不是最优选择,推荐使用BeautifulSoup这样的专业HTML解析库,它能更精准地定位和修改HTML元素,避免正则匹配的各种边缘问题。不过如果只是这种简单的特定片段替换,非贪婪正则完全够用啦!

内容的提问来源于stack exchange,提问作者Cyrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:52:44