如何调整正则表达式以适配多场景提取utm_source后的RESULT值
正则调整方案
问题根因
你当前使用的(?<=(utm_source=)).*(?=%3Futm)正则,仅设置了匹配%3Futm前缀的正向预查规则,第二个示例链接中utm_source=RESULT后无后续参数串,预查匹配失败,因此无法提取到目标值。
最终可用正则
将正向预查规则修改为兼容%3F前缀和字符串结束两种场景,同时使用非贪婪匹配避免冗余捕获:(?<=utm_source=).*?(?=%3F|$)
匹配效果验证
- 针对链接
https://website.com/category/all-products?utm_source=RESULT%3Futm_campaign=test,提取结果为RESULT - 针对链接
https://website.com/category/all-products?utm_source=RESULT,提取结果为RESULT
如果后续需要兼容utm_source后接&分隔其他参数的场景,可以把正则调整为(?<=utm_source=).*?(?=%3F|&|$)即可覆盖更多情况。
内容的提问来源于stack exchange,提问作者user17529303
相关产品推荐
相关产品推荐

