【发布时间】:2023-03-17 00:54:01
【问题描述】:
我使用 Hive 作为数据库,我需要一个 SQL 方法。
我想用域名替换 URL。例如,当我有http://info.myurl.com/some/path/into/the/server 时,我想拥有myurl.com。但是当我有https://myurl.com/ 时,我也想获得myurl.com。
我在 Hive 中找到了regexp_extract 函数,所以我到此为止了:
select regexp_extract('http://info.myurl.com/some/path/into/the/server', 'http[s]?://.*?\.([^/]*)', 1) from dual;
现在困难的部分:如何知道域中是否有 1 个或 2 个点,所以我知道是否必须剥离第一个子域?
【问题讨论】:
-
如果域看起来像
subdomain.myurl.co.uk怎么办?正确的域名是 myurl.co.uk,也不是 co,uk,对吧? -
也可以是
www.subdomain.myurl.co.uk。 -
没错,它也可以是具有双顶级域的域(如 co.uk)。这些让事情变得更加困难。