使用正则表达式提取URL中UTM参数作为Tableau独立维度咨询
Tableau 正则提取URL中UTM参数方案
你提供的URL是URL编码格式,键值分隔符为%3D,参数分隔符为%26,可直接通过Tableau内置的REGEXP_EXTRACT函数对每个维度单独写正则提取,无需拆分全URL所有组件。
方案1:直接对编码后URL提取
为每个需要的UTM维度新建计算字段,公式如下:
- utm_source:
REGEXP_EXTRACT([你的URL字段名称], 'utm_source%3D(.*?)%26') - utm_medium:
REGEXP_EXTRACT([你的URL字段名称], 'utm_medium%3D(.*?)%26') - utm_campaign:
REGEXP_EXTRACT([你的URL字段名称], 'utm_campaign%3D(.*?)%26') - utm_content:
REGEXP_EXTRACT([你的URL字段名称], 'utm_content%3D(.*?)%26')
兼容末尾参数优化
如果目标参数可能出现在URL末尾,后面没有%26分隔符,可改用以下兼容正则写法,替换对应的参数名即可适配所有UTM维度:REGEXP_EXTRACT([你的URL字段名称], 'utm_source%3D(.*?)(%26|$)')
方案2:先解码URL再提取(更易维护)
如果你使用的是Tableau 2021.2及以上版本,可以先对URL做解码,再提取参数,逻辑更直观:
- 新建计算字段【解码后URL】:
URL_DECODE([你的URL字段名称]) - 基于解码后的字段新建各UTM维度的计算字段:
- utm_source:
REGEXP_EXTRACT([解码后URL], 'utm_source=(.*?)&') - utm_medium:
REGEXP_EXTRACT([解码后URL], 'utm_medium=(.*?)&') - utm_campaign:
REGEXP_EXTRACT([解码后URL], 'utm_campaign=(.*?)&') - utm_content:
REGEXP_EXTRACT([解码后URL], 'utm_content=(.*?)&')
同样如果要兼容末尾参数,把正则改成'utm_source=(.*?)(&|$)'即可。
内容的提问来源于stack exchange,提问作者user9269112
相关产品推荐
相关产品推荐

