( 1) www.mysite.site/产品/品牌?card_type=all
2) www.mysite.site/product/brand?card_type=all&cp=randomID&keyword=randomKeyword&network=randomNetwork&v3=sometype&v4=MM
因此,我的分析中有以下两种类型的URL:
基本上,我需要在“card_type”的值后面找到"&“后面的所有链接,并将其替换为”ppc- for“--所以理想情况下,应该有:
我想做的是:
搜索字符串请求URI
^(https?:\/\/\S+\/[^?]*)(.*?)&(cp|keyword|v1|v2|v3|v5)替换字符串:
/ppctraffic(我也尝试过$1/ppctraffic和$2/ppctraffic)
在在线测试regex时,它似乎很有效,所以不确定我做错了什么。任何帮助都深为感激
发布于 2019-07-12 12:16:48
一种方法是在/brand上捕获一个组,匹配的不是问号[^?]+,然后匹配?card_type=all&,然后再匹配任何字符,直到字符串结束。
由于您的链接不以https://开头,所以可以使该部分成为可选的(?:https?:\/\/)?。
^((?:https?:\/\/)?www\.[^?]+)\?card_type=all&(?:cp|keyword|v[1235]).*$然后在替换中使用$1/ppctraffic
const pattern = /^((?:https?:\/\/)?www\.[^?]+)\?card_type=all&(?:cp|keyword|v[1235]).*$/;
[
"www.mysite.site/product/brand?card_type=all&cp=randomID&v1=randomIDv2=productName&v3=sometype&v4=MM&fbclid=randomID",
"www.mysite.site/product/brand?card_type=all",
"www.mysite.site/product/brand?card_type=all&aa=randomID&v1=randomIDv2=productName&v3=sometype&v4=MM&fbclid=randomID"
].forEach(s => console.log(s.replace(pattern, "$1/ppctraffic")));
https://stackoverflow.com/questions/57006684
复制相似问题