我正在尝试使用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
答案 0 :(得分:0)
假设产品名称始终是固定的第四路径元素,我们可以尝试:
REGEXP_EXTRACT(page, '(?:[^\/]+\/){3}([^\/]+).*')
或者,如果以上方法无效:
REGEXP_EXTRACT(page, '[^\/]+\/[^\/]+\/[^\/]+\/([^\/]+).*')
以下是上述示例:
答案 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