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

如何从指定URL提取特定文本?正则最后一个\d+匹配失败求优化方案

解决方案

首先,你的正则表达式其实能匹配到100097,问题出在代码取错了分组——当前取的是group(2)(对应UUID部分),而目标值在group(3)里。不过确实有更简洁高效的方案:

方案1:直接分割URL路径

不用正则,通过字符串分割更直观:

import urllib.parse
url = "https://hub.atlas.co/3/CDEB98AA-FA21-4C0A-B0AA-BERCI87J/100097"
# 解析URL获取路径部分
path = urllib.parse.urlparse(url).path
# 分割路径片段,取最后一个非空部分
target_id = path.strip('/').split('/')[-1]
print(target_id)  # 输出 100097

方案2:简化正则表达式

如果一定要用正则,直接匹配URL末尾的数字更精准:

import re
url = "https://hub.atlas.co/3/CDEB98AA-FA21-4C0A-B0AA-BERCI87J/100097"
# 匹配最后一个斜杠后的数字(确保是路径末尾)
url_pattern = r"/(\d+)$"
id_search = re.search(url_pattern, url)
if id_search:
    print(id_search.group(1))  # 输出 100097

方案3:修正原正则的分组取值

如果要保留原正则结构,只需调整分组索引:

import re
url = "https://hub.atlas.co/3/CDEB98AA-FA21-4C0A-B0AA-BERCI87J/100097"
url_pattern = r"atlas.co/(\d+)/([^/]+)/(\d+)"
id_search = re.search(url_pattern, url)
if id_search:
    print(id_search.group(3))  # 输出 100097

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:23:19