我试图捕获URL中utm标记的多次出现,并在重写URL时追加。但是我只想要utm键值并跳过其他键。
这是一个示例URL
https://example.com/dl/?screen=page&title=SABC&page_id=4063&myvalue=Noidea&utm_source=sourceTest19&utm_medium=mediumTest19&utm_campaign=campaignTest19&utm_term=termTest19&test=value&utm_content=contentTest19
我尝试了这个:
(\?.*)(page_id=([^&]*))(\?|&)(.*[&?]utm_[a-z]+=([^&]+).*)
不幸的是,它没有产生我期望的结果。
我需要同时捕获PAGE ID和utm标记,但不希望
test=value
,myvalue=Noidea
,并且只希望使用utm标记查询字符串。预期结果是以下URL:
https://example.com/dl/page_id/4063?utm_source=sourceTest19&utm_medium=mediumTest19&utm_campaign=campaignTest19&utm_term=termTest19&utm_content=contentTest19
一组
pageid=<somenumber/text>
一组带有所有带有键和值的utm标签的组帮助将不胜感激。
最佳答案
您可以像这样制作正则表达式以获取组结果:(?:(page_id|utm_[a-z]+)=[A-z0-9]+)(?:^\&)?
关于正则表达式PCRE捕获URL中的多次出现查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929088/