Google Data Studio REGEXP_MATCH 多个 URL 变体

Google Data Studio REGEXP_MATCH for multiple URL variations

刚开始使用Google Data Studio,运行遇到了问题。

我们有一个自定义下载报告,显示完整的 URL 文件,然后是文件名;例如:

https://website.com/-/media/rak/files/productdocuments/filename.pdf

我们在不同的位置也有文件;例如:

https://website.com/-/media/rak/files/rak-library/filename.pdf

我试图将两者结合起来显示在下载报告中,但只显示文件名 - 我们想去掉单独的网站 URLs。

从包括这个网站在内的各种网站上拖网,我得到了下面的 CASE 声明部分工作。它会运行第一行,但似乎不想运行第二行。

Event Action 字段显示完整的 URL 和文件名。

我不是 100% 确定 .* 的作用,但它似乎是部分匹配,不完全匹配?当我没有这个时,它找不到任何 URLs,所以假设 REGEXP_MATCH 正在寻找一个完全匹配的,我不需要在路径中包含文件名。

--

主要功能

CASE
  WHEN REGEXP_MATCH(Event Action, '[https://website.com/-/media/rak/files/productdocuments/].*' ) THEN Remove TXT 01
  WHEN REGEXP_MATCH(Event Action, '[https://website.com/-/media/rak/files/rak-library/].*' ) THEN Remove TXT 02
  ELSE Event Action
END

删除 TXT 01

REGEXP_REPLACE(Event Action, 'https://website.com/-/media/rak/files/productdocuments/', '' )

删除 TXT 02

REGEXP_REPLACE(Event Action, 'https://website.com/-/media/rak/files/rak-library/', '' )

--

我不是 100% 确定这是否是用户错误,但如果有人可以提供有关如何让它工作的想法,我将非常感激!

可以通过先创建下面的Extract_Text公式,然后创建Main Formula:

来实现

公式 1: Extract_Text

REGEXP_EXTRACT(Event Action, "/([\w-]+\.\w+)\]?$")

公式 2:主公式

CASE
  WHEN REGEXP_MATCH(Event Action, "\[?https://website\.com/-/media/rak/files/(productdocuments|rak-library)/[\w-]+\.\w+\]?") THEN Extract_Text
  ELSE Event Action
END

公式分解

  1. Extract_Text:捕获最后一个/之后的字符范围a-zA-Z0-9_-序列:[characters].[characters]
  2. 主要公式:如果模式不匹配,则提取 Event Action 字段中的值。

Created a Google Data Studio Report (Google Sheets Embedded) to demonstrate.
EDIT: The formula now captures - to extract product-name-01.pdf