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
公式分解
- Extract_Text:捕获最后一个
/
之后的字符范围a-zA-Z0-9_-
序列:[characters
].
[characters
]
- 主要公式:如果模式不匹配,则提取
Event Action
字段中的值。
Created a Google Data Studio Report (Google Sheets Embedded) to demonstrate.
EDIT: The formula now captures -
to extract product-name-01.pdf
刚开始使用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
公式分解
- Extract_Text:捕获最后一个
/
之后的字符范围a-zA-Z0-9_-
序列:[characters
].
[characters
] - 主要公式:如果模式不匹配,则提取
Event Action
字段中的值。
Created a Google Data Studio Report (Google Sheets Embedded) to demonstrate.
EDIT: The formula now captures-
to extractproduct-name-01.pdf