我正在尝试从下载 URL 中提取文件名,该 URL 不仅以文件名本身结尾,而且在文件名 https://some_website.com/folder/file_name.mkv?st=OyvPiQZL8HmbCkapHo-之后附加到 URL 的额外数据tLG&e=1571543844我尝试在 python 中使用 os.path.basename。它包括文件名和额外内容本身,如上面的链接返回文件名.mkv?st=OyvPiQZL8HmbCkapHo-tLg&e=1571543844代替文件名.mkv
2 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
urld = 'https://ragex.eu/home.html?lol=sdasd'
returned_data = urld[urld.rfind('/') + 1: len(urld)]
print(returned_data) #output : home.html?lol=sdasd
好吧,我不是专家,但这里有一个更简单的方法。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
也许,
[^/]+(?=\?st)
可能工作正常。
测试
import re
string = ' https://some_website.com/folder/file_name.mkv?st=OyvPiQZL8HmbCkapHo-tLg&e=1571543844'
expression = r'[^/]+(?=\?st)'
print(re.search(expression, string).group(0))
输出
file_name.mkv
如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。
添加回答
举报
0/150
提交
取消
