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

如何使用正则表达式提取/:id=格式URL中的正确参数值

正则提取id实现方案

你可以使用以下正则完成提取,核心逻辑是匹配固定前缀:id=后,捕获到下一个路径分隔符/参数分隔符之前的所有内容,捕获组1的结果就是你需要的id值:

:id=([^&/]+)

正则规则说明

  • 固定前缀:id=确保只匹配目标参数的开头,不会误抓其他字段
  • ([^&/]+)为捕获组,[^&/]表示排除&(URL参数分隔符)和/(路径分隔符),+表示匹配至少1个字符,不管id是纯数字、字母数字混合都可以正常捕获,即使后续拼接其他路径段或参数也不会受影响。

示例代码(Swift,适配JLRoutes使用场景)

// 你从JLRoutes拿到的错误value值或者完整URL字符串都可以直接输入匹配
let rawValue = ":id=0001"
// 也可以直接输入完整URL:let rawValue = "urlScheme://search/:id=0001"
do {
    let regex = try NSRegularExpression(pattern: ":id=([^&/]+)", options: [])
    if let match = regex.firstMatch(in: rawValue, range: NSRange(rawValue.startIndex..., in: rawValue)) {
        guard let idRange = Range(match.range(at: 1), in: rawValue) else { return }
        let targetId = String(rawValue[idRange]) // 输出为"0001"
        print(targetId)
    }
} catch {
    print("正则初始化错误: \(error.localizedDescription)")
}

扩展性说明

如果后续需要新增其他同格式的路由参数,只需要扩展正则即可,比如需要同时匹配id和name两个参数,修改正则为:id=([^&/]+).*?:name=([^&/]+)即可分别从捕获组1、2拿到对应参数值,适配多参数场景的成本远低于路径截取方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:36:03