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

正则表达式分组问题:需匹配特定格式字符串并正确分组

解决正则分组匹配问题

我来帮你搞定这个正则分组的需求!你原来的正则分组顺序不对,而且没限制匹配的边界逻辑,导致没法得到你想要的分组结果。

修正后的正则表达式

^foo\/(?|(login)$|([^\/]+)\/(set|get))$

正则详细解释

  • ^foo\/:强制匹配字符串开头的foo/,确保符合你的前缀要求
  • (?|...):分支重置捕获组,这是核心语法——它能让每个分支里的捕获组编号统一:第一个分支里的(login)会被标记为Group1,第二个分支里的([^\/]+)也会被标记为Group1,完美解决你需要统一分组的需求
    • 第一个分支(login)$:匹配以login结尾的字符串,把login捕获到Group1,此时Group2为空
    • 第二个分支([^\/]+)\/(set|get):匹配任意不含/的内容+/+set或get的结构,[^\/]+避免了贪婪匹配多段路径,把中间内容捕获到Group1,set|get捕获到Group2
  • $:强制匹配字符串结尾,避免出现foo/login/get这种不符合要求的匹配

测试用例验证

我们逐个验证你的测试字符串:

  • foo/:不匹配(缺少结尾的合法内容)
  • foo/login:匹配 → Group1=login,Group2=空
  • foo/login/get:不匹配(不符合两种合法结构的任何一种)
  • foo/sadas/set:匹配 → Group1=sadas,Group2=set
  • foo/sadasf/asd:不匹配(结尾不是login/set/get)
  • foo/blabla/get:匹配 → Group1=blabla,Group2=get

完全符合你期望的分组结果!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:04:58