如何编写正则表达式捕获多组目标路径值?
正则解决方案
针对你的需求,这里提供两种可行的正则方案:
方案1:直接捕获目标内容(含分组推导)
使用如下正则表达式:
^https://abc\.xyz\.com/(path1/(path2)(.*))$
对应内容获取方式:
- 分组1(完整路径):直接取第1个捕获组 →
path1/path2/path3/path4 - 分组2(固定前两段):拼接
path1/+ 第3个捕获组 →path1/path2 - 分组3(path2起始的路径):拼接第3个捕获组 + 第4个捕获组 →
path2/path3/path4
注:此正则会生成4个捕获组,其中第3组是path2,第4组是/path3/path4,二者组合即可得到你需要的第三组内容。
方案2:简洁正则+内容推导
如果不需要强行通过正则生成三个独立捕获组,可使用更简洁的正则:
^https://abc\.xyz\.com/((path1/path2)(.*))$
对应内容获取方式:
- 完整路径:直接取第1个捕获组 →
path1/path2/path3/path4 - 固定前两段:直接取第2个捕获组 →
path1/path2 - path2起始的路径:将第2个捕获组去掉
path1/后,拼接第3个捕获组 →${2#path1/}${3},结果为path2/path3/path4
适配说明
以上正则基于你给出的固定域名https://abc.xyz.com/和固定路径段path1/path2编写,若需适配同结构的其他域名,可将域名部分替换为通用匹配规则(比如https://[^/]+/)。
内容的提问来源于stack exchange,提问作者chintu sajjan
相关产品推荐
相关产品推荐

