如何在Data Studio中使用“ REGEXP_EXTRACT”从URL提取子目录

时间:2019-11-04 13:15:04

标签: google-data-studio

我正在尝试使用REGEXP_EXTRACT从两个斜杠之间的URL中提取产品名称。例如,我想从下面的URL中提取“ ace-5”:

www.abc.com/products/phones/ace-5/
www.abc.com/products/phones/ace-5/?cid=dm66363&bid
www.abc.com/products/phones/ace-5/?fbclid=iwar30dpnmmpwppnla7
www.abc.com/products/phones/ace-5/?et_cid=em_367029&et_rid=130

我有一个REGEX来提取域名,但这并不是我真正想要的。以下是REGEX:

REGEXP_EXTRACT(page,'^ [^。] +。([^。] +)')

它给出以下结果:abc

3 个答案:

答案 0 :(得分:0)

假设产品名称始终是固定的第四路径元素,我们可以尝试:

REGEXP_EXTRACT(page, '(?:[^\/]+\/){3}([^\/]+).*')

或者,如果以上方法无效:

REGEXP_EXTRACT(page, '[^\/]+\/[^\/]+\/[^\/]+\/([^\/]+).*')

以下是上述示例:

Demo

答案 1 :(得分:0)

由于我的GDS没有同一个页面,但是我尝试使用一组数据源(即Google Analytics(分析)中的页面)进行重新创建。

使用可能会使用下面的内容,根据您的要求,它会在两个斜杠之后为您获取所有记录。

REGEXP_EXTRACT(Page,'[^/]+/[^/]+/([^/]+)')

您需要使用此公式创建一个计算列,一旦创建了该计算列,您可能需要添加其他过滤器以删除具有null值的列。

示例页面:“ /产品/电话/ ace-5 /” 计算列的值为“ ace-5”

只要确保此正则表达式仅在电话/之后给您提取的单词,如果之后没有任何记录,它就会为空。

答案 2 :(得分:0)

下面的REGEXP_EXTRACT Calculated Field可以解决问题,提取第三个/之后直到/的下一个实例的所有字符:

REGEXP_EXTRACT(Page, "^(?:[^/]+/){3}([^/]+)")

Google Data Studio Report和要详细说明的GIF