2016-04-25 2 views
2

Я пытаюсь сформировать регулярное выражение для REGEXP_SUBSTR (Redshift), которое будет извлекать часть домена поддомена & с любого заданного URL-адреса.Регулярное выражение Redshift для извлечения домена

Я пробовал много предложений из stackoverflow: регулярное выражение-extract-subdomain-domain, get-parts-of-the-url-regex, как получить-домен-имя-от-url и т. Д. Некоторые из них работают над валидатором регулярных выражений, но не работают с Redshift.

Регулярное выражение должно обрабатывать URL-адреса с префиксом http/https и без него.

Есть ли другой способ извлечения домена поддомена & с любого заданного URL-адреса с использованием регулярного выражения?

+0

Отметьте это сообщение в блоге UDF: https://aws.amazon.com/blogs/aws/user-defined-functions-for-amazon-redshift/ – Guy

ответ

1

После тонны экспериментов, это то, что я использую:

REPLACE(REGEXP_SUBSTR(url,'//[^/\\\,[email protected]\\+]+\\.[^/:;,\\\\\(\\)]+'),'//','') 

нужно соответствовать двойной слэш, а затем удалить его с REPLACE из-за довольно основной регулярных выражений, поддерживаемых Redshift.

FWIW, вы заметите, что это очень отличается от регулярных выражений, предоставленных Джефф Барр в Redshift UDF's intro - это регулярное выражение не производит ничего для меня.

Смежные вопросы