Google Data Studio REGEXP_MATCH для нескольких вариантов URL - PullRequest
2 голосов
/ 04 февраля 2020

Только что начал использовать Google Data Studio и столкнулся с проблемой.

У нас есть специальный отчет о загрузках, в котором отображается полный URL-адрес файла, а затем имя файла; например:

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

У нас также есть файлы в другом месте; например:

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

Я пытаюсь объединить оба, чтобы отобразить в отчете о загрузках, но только с именем файла показываю - мы хотим удалить отдельные URL-адреса веб-сайтов.

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

Поле Event Action - это то, что отображает полный URL-адрес и имя файла.

I'm не уверен на 100%, что делает .*, но это похоже на частичное совпадение, не точное? Когда у меня не было этого, он не мог найти ни один URL, поэтому предполагалось, что 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%, если это ошибка пользователя, но если кто-то может предоставить идею о том, как заставить это работать, я был бы очень благодарен!

1 Ответ

0 голосов
/ 20 февраля 2020

Этого можно достичь, создав сначала приведенную ниже формулу 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.

Создано Отчет Google Data Studio (Google Sheets Embedded) для демонстрации.
РЕДАКТИРОВАТЬ : формула теперь захватывает - для извлечения product-name-01.pdf

enter image description here

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