在Google DataStudio中使用CASE语句在字符串中对多个单词REGEXP_MATCH

时间:2019-07-03 09:46:02

标签: regex google-data-studio case-statement

我正在使用 Google Datastudio 进行CASE语句,以接收多字字符串并将其分为几类。有人要求我使用REGEXP_MATCH(没有别的,我知道contains函数会更容易)。

我需要一种解决方案来匹配以下单词:

HouseBrochure 
home brochure 
HomeBrochure 
house brochure 
Bathroom brochure 
Bathroombrochure 
FloorBrochure 
floor brochure

使事情复杂化的是,这些词是通过网站请求系统输入的,这意味着人们可以在以下页面中请求 house bathroom floor 手册。一个请求。当此类请求到达我的服务器时,它会编译成一个看起来像这样的列表(字符串):

# (with the pipes included)
HouseBrochure|Bathroom brochure|floor brochure 

这只是一个请求的示例,会有很多变化和多个请求(我也只包括了其中一些小册子,还有更多)

我需要将所有house brochures,所有bathroom brochures和所有floor brochures等分开,这样我才能计算出每个小册子的请求数量。

我是Regex的新手,我有一个基本的了解,但是还差一点。
我目前在Data Studio中的尝试如下所示:

CASE
WHEN REGEXP_MATCH(Event Label,'^.*(HouseBrochure.*|home brochure.*|HomeBrochure.*|house brochure.*).*$') THEN 'Home Brochure'
END

这只是用于家庭手册,但没有用,有人可以帮忙吗?
另外,作为一个供参考的Datastudio使用REG2

1 个答案:

答案 0 :(得分:0)

我的方法是:

  1. 将所有内容转换为小写(避免混淆大小写)
  2. 使用正则表达式将基本形式替换为变体形式:

例如

(house|home)\s*brochure

替换为

HomeBrochure

测试here

  1. 仅使用基本关键字即可根据需要进行计数。