如何从 url 或带有 sql select 语句的电子邮件中提取域?

How can I extract the domain from an url or email with a sql select statement?

我要的是只提取域名,不提取顶级域名。

我有两个字段,电子邮件和网站。使用两个不同的 sql SELECT 语句,每个字段一个,我想创建两个新字段,EmailDomain 和 WebsiteDomain。

网站中的字段示例:

电子邮件中的值示例:

在上面的所有示例中,我希望结果仅为“域”(或“示例”)。

我已经测试并提出了一些几乎可以完成工作的陈述,但它们并没有修复所有的例子,它们仍然有顶级域。

我目前拥有的是:

SELECT Account.website, REGEXP_REPLACE (Account.website, '(http[s]?://)?(www\.)?(.*?)((/|:)(.)*|$)', '\3') AS `WebsiteDomain` FROM Account

SELECT Leads.email, REGEXP_REPLACE (Leads.email, '^.*@([^\.]+)\.\w+','\1') AS `EmailDomain` FROM Leads

考虑以下

select website, regexp_replace(net.reg_domain(website), '.' || net.public_suffix(website) || '$', '') 
from `project.dataset.table`   

如果应用于您问题中的示例数据 - 输出为

您应该能够将相同的应用到电子邮件字段