Как извлечь год из URL-адреса с помощью REGEXP_EXTRACT в Google Data Studio?

#regex #uri #google-data-studio #re2

#регулярное выражение #uri #google-data-studio #re2

Вопрос:

Я создаю панель управления Google Data Studio, и мне нужно создать вычисляемое поле для года публикации публикации. Год указан в пути URI, но я не уверен, как извлечь его с помощью REGEXP_EXTRACT . Я попробовал несколько решений, предложенных здесь, но, похоже, ни одно из них не работает в Data Studio.

Короче говоря, у меня есть URI, подобный этому: /theme/2019/jan/blog-post-2019/

Как мне использовать REGEXP_EXTRACT функцию, чтобы получить первый 2019 год после theme/ и до /jan ?

Комментарии:

1. Пожалуйста, поделитесь текущим кодом, чтобы увидеть, где вы застряли.

2. У меня его нет, потому что я застрял. Это все, что у меня есть: REGEXP_EXTRACT(Страница, ‘( d{4}[^/.*]*)’) и это не работает, поскольку также фиксирует второе появление года и выдает ошибку в Data Studio.

3. Попробуйте REGEXP_EXTRACT(Page, '/([0-9]{4})/')

Ответ №1:

Попробуйте это:

 REGEXP_EXTRACT(Page, 'theme/([0-9]{4})/[a-z]{3}/') 
  

где:

  • theme/ буквально означает «тема /»;
  • ([0-9]{4}) является ли группа захвата, содержащая 4 символа от 0 до 9 (т. Е. Четыре цифры);
  • /[a-z]{3}/ означает косую черту, за которой следуют 3 строчные буквы (предположим, что вы хотите, чтобы регулярное выражение соответствовало всем месяцам), за которым следует еще одна косая черта. Если вы хотите что-то более строгое, попробуйте с /(?:jan|feb|mar|...)/ для последней части.

Смотрите демонстрацию.

Комментарии:

1. Блестяще! Спасибо!

Ответ №2:

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

настройте запрос в соответствии с вашими потребностями

  SELECT * 
 FROM Sample_table
 WHERE REGEXP_EXTRACT(url, "(?<=/theme/)(?<year>d{4})(?=/[a-zA-Z]{3})")