Regex PCRE在URL中捕获多个事件查询字符串
我试图捕获URL中多次出现的utm标记,并在重新写入URL时追加。然而,我只想要utm键值,跳过其他键值 这是一个示例URLRegex PCRE在URL中捕获多个事件查询字符串,regex,pcre,varnish,Regex,Pcre,Varnish,我试图捕获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_c
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]+=([^&]+).*)
不幸的是,它并没有产生我所期望的结果
我需要捕获页面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=
一个组,包含所有带键和值的utm标记
我们将不胜感激 您可以这样设置正则表达式以获得组结果:
(?:(page_id|utm[a-z]+)=[a-z0-9]+(?:^\&)
您可以用空字符串替换与所需参数不匹配的任何参数。这种模式是
(?:[?&](?!(?:page_id|utm_[^=&]++)=)[^&]*+)++$|(?<=[?&])(?!(?:page_id|utm_[^=&]++)=)[^&]*+(?:&|$)
(?:[?&](?!(?:page_id|utm|utm|utm=&]+=)[^&]*++$)(?我们可以将它们组合在一起吗?我计划在重写URL时将它们用作查询字符串