Sql 仅从配置单元中的电子邮件id提取域名

Sql 仅从配置单元中的电子邮件id提取域名,sql,regex,hive,hiveql,Sql,Regex,Hive,Hiveql,在我的配置单元表中,我有一个电子邮件地址列:xxxx@gmail.com 我想单独显示“gmail”。我尝试使用regexp\u extract,但没有得到所需的输出。远没有 也适用于电子邮件ID,如xxxx@ffff.nec.co.jp,我希望输出为“ffff.nec.co” 下面是我的表达式:选择regexp\u extract('xxxx@gmail.com','.([^.]+)') 但它并没有带来预期的产出。 请帮帮我,伙计们。Regexp或substr适合我 选项1 hive>

在我的配置单元表中,我有一个电子邮件地址列:xxxx@gmail.com 我想单独显示“gmail”。我尝试使用regexp\u extract,但没有得到所需的输出。远没有

也适用于电子邮件ID,如xxxx@ffff.nec.co.jp,我希望输出为“ffff.nec.co”

下面是我的表达式:选择regexp\u extract('xxxx@gmail.com','.([^.]+)') 但它并没有带来预期的产出。 请帮帮我,伙计们。Regexp或substr适合我

选项1

hive> select  regexp_extract('xxxx@gmail.com'       ,'@(.*)\\.',1);
OK
gmail

hive> select  regexp_extract('xxxx@ffff.nec.co.jp'  ,'@(.*)\\.',1);
OK
ffff.nec.co
选择2

hive> select  regexp_extract('xxxx@gmail.com'       ,'(?<=@).*(?=\\.)',0);
OK
gmail

hive> select  regexp_extract('xxxx@ffff.nec.co.jp'  ,'(?<=@).*(?=\\.)',0);
OK
ffff.nec.co
hive>选择regexp\u提取('xxxx@gmail.com“,”(?选项1

hive> select  regexp_extract('xxxx@gmail.com'       ,'@(.*)\\.',1);
OK
gmail

hive> select  regexp_extract('xxxx@ffff.nec.co.jp'  ,'@(.*)\\.',1);
OK
ffff.nec.co
选择2

hive> select  regexp_extract('xxxx@gmail.com'       ,'(?<=@).*(?=\\.)',0);
OK
gmail

hive> select  regexp_extract('xxxx@ffff.nec.co.jp'  ,'(?<=@).*(?=\\.)',0);
OK
ffff.nec.co
hive>选择regexp\u提取('xxxx@gmail.com'       ,'(?