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

正则表达式匹配返回None求助:无法提取路径中的ID串

问题根源与解决方法

你的函数返回None的核心原因是**re.match()仅从字符串的起始位置开始匹配**,而目标ID并不在路径字符串的开头,自然匹配失败。

修正步骤:

  1. 替换匹配方法:将pattern.match(path)改为pattern.search(path)。search()会扫描整个字符串,找到第一个符合正则的匹配项,而非局限于字符串开头。
  2. 提取实际匹配内容:search()返回的是匹配对象,需要调用.group()方法获取具体的ID字符串,否则返回的是匹配对象而非目标值。
  3. 优化正则(可选):为避免匹配到路径中其他无关的数字下划线组合,可调整正则,限定ID位于/之后、?之前,匹配更精准:
    pattern = re.compile(r"/([0-9]+(_[0-9]+)+)\?")
    

修正后的完整函数:

import re

def extract_id(path):
    # 精准匹配/和?之间的ID格式
    pattern = re.compile(r"/([0-9]+(_[0-9]+)+)\?")
    match_result = pattern.search(path)
    # 匹配成功则返回ID,否则返回None
    return match_result.group(1) if match_result else None

测试验证:

针对你给出的两个路径输入,该函数会分别返回5438_133195_9917949_1218833和2356_15890_9397775,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:35:57