#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})")