正则表达式OR语句用法及从两种URL中提取partNumber的问题
正则表达式OR语句用法及从两种URL中提取partNumber的问题
嘿,我来帮你搞定这个提取partNumber的问题!你遇到的这两种URL场景挺典型的,咱们用正则的分支逻辑(也就是|,相当于OR)就能一次性解决。
先理清楚两种场景的提取规则:
- 第一种URL:要从
partNumber=参数后面提取值,直到下一个&或者URL结束 - 第二种URL:直接取最后一个斜杠
/后面的所有内容
针对这两种情况,我整理了一个可以直接用的正则表达式:
(?<=partNumber=)[^&]+|(?<=\/)[^\/]+$
我给你拆解下这个正则的逻辑:
- 左边的
(?<=partNumber=)[^&]+:专门匹配带partNumber参数的URL。(?<=partNumber=)是正向预查,确保要匹配的内容紧跟在partNumber=之后;[^&]+表示匹配所有不是&的字符,这样就能精准拿到参数值,不会包含后面的其他参数。 - 右边的
(?<=\/)[^\/]+$:用来匹配第二种URL。(?<=\/)是正向预查最后一个斜杠,[^\/]+$表示匹配从这个斜杠之后到URL结尾的所有非斜杠字符,也就是路径的最后一段。
用你给出的两个URL测试的话:
- 第一个URL会匹配到
ac-airoptix-colors-2 - 第二个URL会匹配到
827934482050
完全符合你的需求!如果之后遇到结构稍有变化的类似URL,你可以根据这个思路调整正则的预查或者匹配范围就行。
备注:内容来源于stack exchange,提问作者bugfixer_vicky
相关产品推荐
相关产品推荐

