python - 用正则表达式和python替换所有html href中的下划线
问题描述
所以我目前正在使用python。
如何浏览 HTML 文件并替换所有出现的:
<a href="#some_snake_case_text">
并将其转换为:
<a href="#somesnakecasetext">
独立于文本的href里面有什么?
所以我打算使用正则表达式,我现在已经有几个小时了,但我没有成功匹配href标记之间的“_”以删除它们......我不能只匹配这个词并做a 替换所有 cus,实际上将替换整个文档中的所有内容,这不是预期的。
我试着用这个来计算所有的“_”
<a href=\"#(.*(_).*)+\">
或除下划线外的所有内容:
<a href=\"#([^_]_?)+\">
然后也许更换它?!
我怎样才能做到这一点?
解决方案
您可以使用re.sub
:
import re
s = '<a href="#some_snake_case_text">'
new_s = re.sub('(?<=href\=")[^"]+', lambda x:''.join(x.group().split('_')), s)
输出:
'<a href="#somesnakecasetext">'
推荐阅读
- swift - 制作与赋值不兼容的 Int 类型别名
- python - 关于 pd.dataframe.reset_index() 中 drop=True 的问题
- asp.net-core-webapi - NServiceBus IP 地址
- r - 如何删除演示窗格中的 R Studio 警告消息?
- symfony - Symfony 4 自定义表单类型
- javascript - 在用户登录时检查具有相同网站的其他选项卡并重新加载这些选项卡
- react-native - 如何在本机反应中创建 Apple Music 用户令牌
- redis - 监听特定键名的redis过期事件
- node.js - 如何构建一个在后台保持活动状态并每隔几秒执行一次轮询操作的节点 js 程序/服务?
- unity3d - 在 Unity 中,如何根据响度从麦克风中分割用户的声音?