Google Data Studio正则表达式如何排除带查询参数的URL
Google Data Studio 正则提取最后路径并排除带查询参数URL
原实现与存在的匹配偏差
此前在Google Data Studio中使用如下正则提取URL的最后一级目录值,基础场景下运行稳定:REGEXP_EXTRACT( Page , '.*/(.*)/' )
该规则会无差别匹配所有结尾带斜杠的URL,包括无参数的/directory1/、带任意查询参数的/directory1/?var=1、/directory1/?anykey=anyvalue,无法精准区分带参数和不带参数的路径,不符合筛选要求。
适配需求的调整方案
调整后的正则表达式为:REGEXP_EXTRACT( Page , '^.*/([^/?]+)/$' )
规则逻辑说明
^锚定字符串起始位置,避免匹配路径中间的零散无关片段.*/匹配最后一层斜杠之前的所有路径内容([^/?]+)作为捕获组,匹配不含斜杠、也不含问号的连续目录名,从规则层面排除带参数的内容$锚定字符串结束位置,要求路径在最后一个斜杠处直接结束,斜杠后不能存在任何字符(包括查询参数)
匹配效果
- 匹配无参数纯路径
/directory1/:正常提取捕获组内的directory1值 - 匹配任意带查询参数的路径(不受参数名、参数值限制):因斜杠后紧跟
?不满足结束锚定要求,匹配失败,不会返回提取值
内容的提问来源于stack exchange,提问作者TerryB
相关产品推荐
相关产品推荐

