Использование регулярного выражения для извлечения папки URL в Google Datastudio

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

Первое вычисленное поле выглядит примерно так:

REGEXP_EXTRACT(Landing Page,'https?:\\/\\/.*?\\/(.*?)\\/.*')

для каждого уровня папки я перемещаю группу на один уровень каталога (и так далее ...):

REGEXP_EXTRACT(Landing Page,"https?:\\/\\/.*?\\/.*?\\/(.*?)\\/.*")

Проблема в том, что каждый URL без косой черты в конце группируется как "null". Я попытался сделать последнюю косую черту необязательной, но это вообще не работает.

REGEXP_EXTRACT(Landing Page,'https?:\\/\\/.*?\\/(.*?)\\/?.*')

person Keck1337    schedule 16.04.2020    source источник
comment
Может тебе нужен REGEXP_EXTRACT(Landing Page, r'https?://[^/]+/[^/]+/([^/]+)')? См. демонстрацию регулярного выражения   -  person Wiktor Stribiżew    schedule 16.04.2020


Ответы (1)


Я предлагаю использовать здесь классы отрицательных символов.

Чтобы получить первую часть, вы можете использовать

REGEXP_EXTRACT(Landing Page, "https?://[^/]+/([^/]+)/[^/]+")
                                              ^^^^^^^

Чтобы получить второй, вы можете использовать

 REGEXP_EXTRACT(Landing Page, "https?://[^/]+/[^/]+/([^/]+)")
                                                     ^^^^^^^ 

Обратите внимание, что вам не нужно экранировать / char, это не специальный метасимвол регулярного выражения.

См. демонстрацию регулярных выражений.

person Wiktor Stribiżew    schedule 16.04.2020
comment
REGEXP_EXTRACT(Landing Page, r'https?://[^/]+/([^/]+)/[^/]+') будет отображаться как null. REGEXP_EXTRACT(Landing Page, https?://[^/]+/([^/]+)/[^/]+') будет отображаться так же, как указано выше. - person Keck1337; 16.04.2020