Python中如何移除链接ID中的/1693798184?(split与re.compile)
解决方案
首先你的代码存在基础错误:id变量的字符串未加引号,Python会直接报错,先补上引号再处理。
下面给你几种简单可行的实现方式:
方法1:split+join分割拼接
把路径按/分割成列表,去掉最后一个元素后重新拼接:
import requests, re id_str = "/subtitles/bullet-train/english/2894262/1693798184" # 分割成列表并截取除最后一个元素外的所有部分 parts = id_str.split('/')[:-1] # 重新拼接成目标路径 result = '/'.join(parts) print('id', result)
输出结果:id /subtitles/bullet-train/english/2894262
方法2:正则表达式替换
匹配末尾的/及其后续所有内容,直接替换为空字符串:
import requests, re id_str = "/subtitles/bullet-train/english/2894262/1693798184" # 正则匹配最后一段路径并替换为空 result = re.sub(r'/[^/]+$', '', id_str) print('id', result)
/[^/]+$表示匹配字符串末尾的/加上所有非/的字符,替换后直接得到目标前缀,比你之前的正则写法简洁高效。
方法3:rsplit从右侧单次分割
从字符串右侧按/分割一次,直接取分割后的前半部分:
import requests, re id_str = "/subtitles/bullet-train/english/2894262/1693798184" # 从右侧分割一次,取第一个元素 result = id_str.rsplit('/', 1)[0] print('id', result)
这个方法是三种里最简洁的,通过指定分割次数避免了多余的列表操作。
内容的提问来源于stack exchange,提问作者amino
相关产品推荐
相关产品推荐

