【发布时间】:2023-01-30 20:51:07
【问题描述】:
是否可以用一个正则表达式解析这两个 url?
首先是项目下路径的这种格式:
const str1 = "https://gitlab.com/myproject/my_product/prd/projectbranch/-/tree/master/src/tools/somepath/somename"
第二种是 MR 的这种格式:
const str2 = "https://gitlab.com/myproject/my_product/prd/projectbranch/-/merge_requests/20"
我能够像这样解析第一个:
const [_, baseUrl, type, branchName, relativePath] = str1.match(/(.*)\/-\/(tree|merge_requests)\/(.+?)(?:\/(.*$))/)
但是我无法在单个正则表达式中解析第一个和第二个字符串。
基本上我想这样做(这不起作用):
const [_, baseUrl, type, mergeRequestNumber] = str2.match(/(.*)\/-\/(tree|merge_requests)\/(.+?)(?:\/(.*$))/)
编辑:我希望mergeRequestNumber在第二场比赛中匹配20而不破坏第一场比赛。
【问题讨论】:
标签: javascript regex