REGEXP_REPLACE Очистка URL видео YouTube в Data Studio - PullRequest
1 голос
/ 01 мая 2020

Я запускаю событие, которое отправляет метку события как "{{Имя видео YouTube}} - {{Видео URL}}", и я пытаюсь очистить свой отчет Data Studio, чтобы удалить дубликаты. Это три строковые структуры, которые я пытаюсь очистить (объединить) с первым примером, являющимся основным и желаемым результатом.

Название видео - https://www.youtube.com/watch?v=BHdX7wjVZuoI

Имя видео - https://www.youtube.com/watch?v=BHdX7wjVZuoI&ebc=ANyPxKrWfYNNVhpt95KfvUrpVQmzotu0CtDxIhnZlW3WyfXfnilceZ6cSW3JbSrVFvNH2T5sO8tyf0PEhdFeSh7waKYfyZEgcg

Имя видео - https://www.youtube.com/watch?t=1&v=BHdX7wjVZuoI

REGEXP_REPLACE(Event Label,'(.*youtube\\.com/watch\\?v=[^\\&]*)\\&(.*)','\\1')
REGEXP_REPLACE(Event Label,'(.*youtube\\.com/watch\\?)(t=[0-9]*\\&)?(v=[^\\&]*)\\&(.*)','\\1\\3')

Оба из REGEXP_REPLACE работают для первого два примера и удалите все после "& ebc =".

То, что я не могу заставить работать, - это третий пример URL-адреса видео и удаление средней части. В приведенном выше примере кода это "t = 1 &". Все строки URL, которые я пытаюсь удалить, имеют одинаковый формат: "t =" (одна или несколько цифр) "&".

Я попробовал второй код, где я добавил (t=[0-9]*\\&)?, но эти видео URL не фиксируются и все еще отображаются как отдельные метки событий (url).

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 02 мая 2020

Это REGEXP_REPLACE Рассчитанное поле делает трюк:

REGEXP_REPLACE(Event Label, '^(.*youtube\\.com/watch\\?).*(v=[^\\&]*).*', '\\1\\2')

Краткое объяснение :

  • * соответствует символу, если он встречается 0 или более раз, и прикрепляется к персонажу или группе, расположенной рядом с ним.
  • =* ищет 0 или более вхождений =.
  • [^\\&]* соответствует 0 или более экземплярам или любому символу, КРОМЕ &, таким образом, (v=[^\\&]*) извлекает v= и все символы до первого вхождения &.
  • Кроме того, .* будет извлекать любой символ 0 или более раз.

Отчет Google Data Studio для уточнения:

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