Python如何替换字符串指定符号间内容 实现Reddit视频URL转音频地址
解决方案
无正则实现(优先推荐)
实现逻辑:通过定位固定特征串的位置做字符串拼接,完全避免多.的干扰,不需要引入额外依赖:
- 第一步:定位特征前缀
DASH_在原始URL中的起始索引 - 第二步:从
DASH_的索引位置往后查找后缀.mp4的起始索引,确保不会命中URL前半段的域名. - 第三步:拼接前缀部分、固定音频标识、后缀部分得到目标URL
Python代码示例:
original_url = "https://v.redd.it/jvjih3f894b61/DASH_1080.mp4?source=fallback" # 定位DASH_的起始位置 dash_prefix_pos = original_url.find("DASH_") # 从DASH_之后的位置查找.mp4,避免匹配到域名部分的点 mp4_suffix_pos = original_url.find(".mp4", dash_prefix_pos) # 拼接得到音频地址 audio_url = original_url[:dash_prefix_pos] + "DASH_audio" + original_url[mp4_suffix_pos:]
运行后得到的audio_url就是目标结果:https://v.redd.it/jvjih3f894b61/DASH_audio.mp4?source=fallback
正则实现方案
如果允许使用正则,可以通过正向预查匹配需要替换的分辨率段,代码更简洁:
import re original_url = "https://v.redd.it/jvjih3f894b61/DASH_1080.mp4?source=fallback" # 匹配后面紧跟.mp4的DASH_+数字串,替换为音频标识 audio_url = re.sub(r"DASH_\d+(?=\.mp4)", "DASH_audio", original_url)
正则说明:DASH_\d+匹配DASH_加任意长度数字的分辨率标识,(?=\.mp4)为正向预查,确保只匹配后面紧邻.mp4的目标段,不会误改URL其他部分的内容。
内容的提问来源于stack exchange,提问作者user12105861
相关产品推荐
相关产品推荐

