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

使用REGEXREPLACE按首个路径段对URL路径分组

用REGEXREPLACE基于首个路径段动态分组URL

首先,咱们先明确核心需求:要从给定的URL路径里,自动提取首个路径段(或者根路径)作为分组名,不用提前硬编码foo、xyz这些分组值,最后得到去重后的分组列表。

步骤1:用REGEXREPLACE提取每个URL的分组标识

针对每个URL路径,我们可以用正则捕获首个路径段,根路径单独处理。在Google Sheets(REGEXREPLACE最常用的场景之一)里,你可以用这个公式:

=IFERROR(REGEXREPLACE(A1, "^/([^/]+).*$", "$1"), "/")

把这个公式放到B列,对应A列的每个URL,就能得到每个URL对应的分组标识:

  • / → /
  • /foo/ → foo
  • /foo/bar → foo
  • /xyz/abc → xyz
  • /xyz → xyz

正则表达式解释

咱们拆解一下用到的正则^/([^/]+).*$:

  • ^/:匹配URL开头的斜杠
  • ([^/]+):捕获组1,匹配首个路径段——这里的[^/]表示非斜杠字符,+表示至少一个,所以会把/后面到下一个/(或者结尾)的内容全部捕获
  • .*$:匹配路径段后面的所有内容(不管有没有)

IFERROR函数是用来处理根路径/的情况:当正则匹配失败(也就是根路径没有后续路径段),就返回/作为分组标识。

步骤2:生成最终分组列表

如果要得到去重后的分组结果(就是你期望的/ foo xyz),只需要对B列的结果用UNIQUE函数:

=UNIQUE(B:B)

这样就能自动生成所有动态提取的分组,完全不需要预定义任何分组名——正则会自动把每个URL的首个路径段抓出来当分组标识,完美解决你的核心问题。

额外优化:用单个REGEXREPLACE搞定(不用IFERROR)

如果你想只用一次REGEXREPLACE实现,可以调整正则和替换逻辑:

=REGEXREPLACE(A1&"/", "^/([^/]+)/.*$|^/$", "$1")

这里给每个URL末尾加了个斜杠,确保根路径和非根路径都能被正则统一匹配,替换后自动得到正确的分组标识。

内容的提问来源于stack exchange,提问作者J. Ayo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:38:35