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

正则表达式提取curl返回URL问题:如何获取不含引号的链接

解决从curl返回字符串中提取URL的问题

我明白你的问题啦——你用re.search('https://.*$', fileIO)匹配到的内容把后面的JSON尾巴也带上了,比如"https://file.io/Syv77d","expiry":"14 days"},这显然不是你想要的干净URL。问题出在你的正则表达式太“贪婪”了,而且没考虑URL的边界(双引号)。

给你两个靠谱的解决方案:

方案1:优化正则表达式

既然URL是被双引号包裹的,我们可以精准匹配双引号之间的URL内容,避免把后面的JSON字符带进来。试试这个正则:

import re

# 假设fileIO是curl返回的字符串
match = re.search(r'"(https://file\.io/[^"]+)"', fileIO)
if match:
    link = match.group(1)  # 这里拿到的就是不带双引号的URL:https://file.io/Syv77d
    print(link)

正则说明:

  • ":匹配URL开头的双引号
  • https://file\.io/:固定匹配URL的前缀(注意.要转义成\.,因为正则里.是通配符)
  • [^"]+:匹配除了双引号之外的所有字符,这样就会在遇到下一个双引号时停止,完美截断多余内容
  • 括号():把我们想要的URL部分标记为捕获组,用group(1)就能提取出来

方案2:用JSON解析更稳妥(推荐)

既然curl返回的内容看起来是JSON格式(有"expiry":"14 days"这种键值对),那直接用Python的json模块解析才是最靠谱的方式,比正则不容易出错:

import json

# 把字符串转成Python字典
response_data = json.loads(fileIO)
# 假设URL对应的键是"link",根据实际返回的JSON结构调整键名
link = response_data["link"]
print(link)

这种方法不用依赖字符串的格式细节,只要JSON结构正确,就能直接拿到想要的URL,后续如果返回内容有小变化(比如键的顺序变了),也不会影响提取结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:42:03