我试图为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进行的域?
答案 0 :(得分:2)
经过吨的实验,这就是我的用法:
REPLACE(REGEXP_SUBSTR(url,'//[^/\\\,=@\\+]+\\.[^/:;,\\\\\(\\)]+'),'//','')
需要匹配双斜杠,然后使用REPLACE
将其删除,因为Redshift支持相当基本的正则表达式。
FWIW,你会发现这与<{3}}中Jeff Barr提供的正则表达不同非常 - 正则表达式为我生成 nothing 。