首页 > 解决方案 > 从 hive 中的字符串中提取 email_address

问题描述

我是 hive 新手 我有一个字符串,我想从 hive 中的字符串中提取电子邮件地址

Select regexp_extract('my email address is xxxxxx@gmail.com', '@(.*)',0);
OK
@gmail.com

它只是提取域名,但我需要完整的电子邮件地址,即“xxxxxx@gmail.com”

我是正则表达式的新手

标签: regexhadoophive

解决方案


您可以使用

Select regexp_extract('my email address is xxxxxx@gmail.com', '\\S+@\\S+',0);
Select regexp_extract('my email address is xxxxxx@gmail.com', '\\S+@\\S+\\.\\S+',0);

请注意双反斜杠,因为要在文本中表示文字反斜杠,您需要在字符串文字中使用两个。

\S+@\S+模式只匹配一个或多个非空白字符,@然后再匹配一个或多个非空白字符。

\S+@\S+\.\S+模式执行相同的操作 + 然后它还匹配 a.并再次匹配一个或多个非空白字符。


推荐阅读