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

如何用正则表达式从类字典字符串中提取所有URL?

解决类字典字符串中提取所有URL的正则方案

嘿,我知道你在处理这个类字典格式的字符串时,遇到了正则只能提取部分URL的问题,这就给你一个靠谱的解决方案!

问题分析

先看你的目标字符串结构:每个URL都严格包裹在url:'...'的格式里,URL本身以https://开头,并且内部没有单引号(从示例内容来看)。之前的正则可能因为匹配范围不够精准,导致漏抓或者误抓。

可行的正则表达式

这里推荐使用这个正则来精准捕获所有URL:

url:'(https://[^']+)'

正则解释:

  • url:':精准匹配URL的前缀标识,确保我们只找url:后面的链接
  • (https://[^']+):捕获组,其中:
    • https://:匹配URL的协议部分,确保只提取HTTPS链接
    • [^']+:匹配除单引号之外的任意字符,直到遇到下一个单引号为止,完美适配你的字符串中URL被单引号包裹的结构

代码示例(Python)

直接用re.findall就能一次性提取所有URL:

import re

s = "'0352442':{url:'https://www.riteaid.com/shop/nexium-24hr-42-ct-capsules-0352442'},'0370009':{url:'https://www.riteaid.com/shop/rite-aid-pharmacy-epsom-salt-first-aid-6-lb-2-72-kg-0370009'},'0303249':{url:'https://www.riteaid.com/shop/huggies-natural-care-unscented-baby-wipes-soft-pack-56-count-0303249'},'0398568':{url:'https://www.riteaid.com/shop/rite-aid-sterile-pads-4-x4-25-ea-0398568'},}"

# 提取所有URL
extracted_urls = re.findall(r"url:'(https://[^']+)'", s)

# 输出结果
for idx, url in enumerate(extracted_urls, 1):
    print(f"URL {idx}: {url}")

运行这段代码后,你会得到所有4个URL,一个都不会漏!

额外说明

如果你的URL中可能包含单引号(虽然示例里没有),那这个正则需要调整,但从你给出的输入来看,这个方案完全够用。如果后续有特殊情况,我们可以再优化正则逻辑~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:19:29