我的URIs
页面尺寸中有一个请求GA
,如下所示:
我想在Tableau中创建一个计算字段,该字段提取出第一个“?”之前的文本。并返回该值。
基于上述输入的理想输出为:
我尝试过
计算字段:公式:REGEXP_REPLACE(Page, '\\?.+', '')
它不返回任何记录。
请就Tableau为什么未按预期处理此问题提供解决方法或解释?
答案 0 :(得分:0)
而不是替换问号右侧的字符,请尝试将其提取到左侧:
REGEXP_EXTRACT([Page], '([^?]*)')
奇怪的是,没有括号,以上计算的字段将不起作用。您最初的尝试也许也是如此。
编辑:因为您的原始功能似乎对我有用,所以我很好奇您是否要尝试使用当前不支持Tableau的正则表达式的数据源。
Here是支持正则表达式功能的数据源的列表:
此功能适用于文本文件,Google BigQuery,PostgreSQL,Tableau数据提取,Microsoft Excel,Salesforce,Vertica,Pivotal Greenplum,Teradata(版本14.1及更高版本),Impala 2.3.0(通过Cloudera Hadoop数据源), Snowflake和Oracle数据源。
不使用Regex即可在Tableau中本地执行此操作的方法如下:
IF CONTAINS([Page],'?') THEN
LEFT([Page], FIND([Page],'?')-1)
ELSE
[Page]
END
但是要谨慎,因为Contains()函数在计算上相对昂贵-因为它需要搜索每个字符串的每个字符。