用于域提取的Redshift正则表达式

时间:2016-04-25 07:47:28

标签: regex amazon-redshift regexp-substr

我试图为REGEXP_SUBSTR (Redshift)形成一个正则表达式,它将提取子域&来自任何给定URL的域部分。

我尝试了很多来自stackoverflow的建议:regular-expression-extract-subdomain-domain,getting-parts-of-url-regex,how-to-get-domain-name-from-url等等。他们使用正则表达式验证器,但不适用于Redshift。

正则表达式应该处理带有和不带http / https前缀的URL。

有没有其他方法可以提取子域&使用正则表达式从任何给定URL进行的域?

1 个答案:

答案 0 :(得分:2)

经过的实验,这就是我的用法:

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

需要匹配双斜杠,然后使用REPLACE将其删除,因为Redshift支持相当基本的正则表达式。

FWIW,你会发现这与<{3}}中Jeff Barr提供的正则表达不同非常 - 正则表达式为我生成 nothing