REGEXP_MATCH несколько слов в строке с помощью оператора CASE в Google DataStudio - PullRequest
0 голосов
/ 03 июля 2019

Я использую 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 

Это всего лишь пример 1 запроса, есть много вариантов и несколько запросов (я также включил только несколько таких брошюр, их гораздо больше)

Мне нужно выделить все 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

Это только для домашней брошюры, но она не работает, кто-то может помочь?
Также в качестве FYI Datastudio используется REG2

1 Ответ

0 голосов
/ 03 июля 2019

Мой подход будет:

  1. преобразовать все в нижний регистр (избегайте путаницы с верхним / нижним регистром)
  2. Используйте регулярные выражения для замены вариантов базовой формой:

, например

(house|home)\s*brochure

заменить на

HomeBrochure

Тест здесь .

  1. Сделайте подсчет по мере необходимости, используя только базовые ключевые слова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...