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

如何用正则表达式提取指定URL路径片段?求正则及语法解析

可用正则表达式及解析

1. 直接匹配目标片段的正则

如果只需精准匹配/pmp/xxx/格式的目标路径片段,使用:

\/pmp\/[^\/]+\/

各组件作用解析:

  • \/:匹配字面量斜杠/,由于斜杠是正则的特殊分隔符,必须用反斜杠\转义才能匹配真实的斜杠字符
  • pmp:精准匹配固定字符串pmp,锁定目标路径的起始标识
  • \/:再次匹配斜杠/,对应/pmp/结构的第二个斜杠
  • [^\/]+:[^...]是否定字符集,表示排除斜杠;+表示匹配1次及以上非斜杠字符,用来捕获pmp后的子路径(如pml、bom、parts)
  • \/:匹配结尾的斜杠/,保证输出片段和示例格式一致,以斜杠收尾

2. 从完整URL中提取目标片段的正则

如果需要从任意前缀的完整URL中提取目标片段(比如用Python的re.search、JavaScript的match等工具),使用带捕获组的正则:

.*?(\/pmp\/[^\/]+\/)

额外组件解析(在基础正则上新增的部分):

  • .*?:.*表示匹配任意字符(除换行)任意次数,?开启非贪婪匹配模式,会尽可能少地匹配字符,避免误吞/pmp/前面的前缀内容,确保捕获组精准定位到第一个出现的/pmp/xxx/片段
  • ():捕获组,将括号内匹配到的内容单独提取出来,后续可通过正则工具或代码直接获取该组内容作为结果

你现有正则的问题及语法解析

你的现有正则/[^/]*/([^/]*)/(注意:若用/作为正则分隔符,内部的/需转义,正确写法应为\/[^\/]*\/([^\/]*)\/)仅适用于特定场景,原因如下:

语法含义:

  • \/:匹配斜杠
  • [^\/]*:匹配任意非斜杠字符0次或多次,对应第一个斜杠后的内容
  • \/:匹配斜杠
  • ([^\/]*):捕获组,匹配任意非斜杠字符0次或多次,对应两个斜杠之间的内容
  • \/:匹配斜杠

局限性:

这个正则只能匹配类似/xxx/yyy/的三段式路径片段,完全没有针对/pmp/的固定前缀做匹配逻辑,仅当pmp恰好是第一个斜杠后的内容时才能工作,无法适配任意前缀的URL,通用性极差。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:21