Правильное использование для REGEXP_EXTRACT в Google Data Studio для создания вычисляемого поля - продолжайте получать 'Null' - PullRequest
0 голосов
/ 19 ноября 2018

Я пишу отчеты в Google Data Studio.В прошлом я успешно создал несколько пользовательских измерений, используя REGEXP_MATCH в измерении «Ключевое слово» в сочетании с операторами CASE, чтобы создать нужные мне измерения.Это меня озадачило.

У меня есть данные, поступающие через измерение «Ключевое слово», которое содержит подстроку, которую я хотел бы извлечь и отобразить в качестве пользовательского измерения.

ПодмножествоПроходящие через данные ключевые слова выглядят так:

09172018_rp_ws_1_og_
img s4_ac_p_act_
img s5_ws_5_m_
img s4_ws_5_m_

Я пытаюсь использовать REGEXP_EXTRACT для создания нового вычисляемого поля с именем «Тип изображения», которое представляет собой измерение, которое группирует все записи, начиная с img, после чего следуетпробел, а затем любые буквенно-цифровые символы, заканчивающиеся подчеркиванием.Таким образом, все записи с «img s4» будут сгруппированы вместе, «img s5» сгруппированы вместе.Все в измерении ключевых слов без этого шаблона может быть полностью исключено из набора данных.

Я не могу получить никаких результатов, кроме "null", с помощью REGEXP_EXTRACT.

Даже простая попытка REGEXP_EXTRACT(Keyword, '.*img.*') приводит к нулю при вводе в формулу для нового вычисляемого поля.

Меня сбивает с толку то, что я попытался сделать следующее, просто чтобы убедиться, что мой синтаксис выключен, иэта формула возвращает результаты (только не то, что я хочу, поскольку типы изображений не агрегированы).

CASE
WHEN(REGEXP_MATCH(Keyword,'.*img.*')) THEN Keyword
ELSE "Not Set"
END

Есть идеи, где я ошибаюсь?Я не могу получить вывод из REGEXP_EXTRACT(Keyword, 'your reg expression here') независимо от того, что я ввожу.

1 Ответ

0 голосов
/ 20 ноября 2018

Помните, что для извлечения любого текста из REGEXP_EXTRACT вы должны определить группу захвата внутри шаблона регулярных выражений.Короче говоря, заключите часть, которую нужно извлечь, с парой неэкранированных скобок.

Теперь, чтобы соответствовать img в начале строки, вам нужно использовать ^ якорь, он соответствует началупозиция строки.

Чтобы соответствовать 1 или более символам, используйте +.

Таким образом, вы можете использовать любое из следующих действий в зависимости от ваших настоящих правил:

REGEXP_EXTRACT(Keyword, '^img ([a-zA-Z0-9_]+)')
REGEXP_EXTRACT(Keyword, '^img\\s+(\\w+)')
REGEXP_EXTRACT(Keyword, '^img\\s+(.+)')

Подробности

  • ^ -начало строки
  • img - буквенная подстрока
  • ([a-zA-Z0-9_]+) - Группа захвата 1: одна или несколько букв, цифр или _
  • \s+ -1 или более пробелов
  • \w+ - 1 или более символов слова: буквы, цифры или _
  • .+ - 1 или более символов, кроме символов перевода строки.
...