蜂巢中日期提取的正则表达式

时间:2019-02-27 18:22:37

标签: hive

团队,

需要帮助。

我有一个列,其值类似于“ 2019年2月27日的总计百分比”,我只需要从中提取日期部分,而列中的值与上面相同,因此我在下面使用。

当split(col1,'')[0] ='Sum'时,substr(col1,-10)否则以null结尾为col2

但是,问题是我确实有以诸如“总计而不是必需的总和”之类的值开头的列值,因此在上面的代码中,我得到的结果是“不需要的”,我不需要,应将其替换为空值。

我的新列应仅获取日期值,其余应为null。如何做到这一点。请帮助。谢谢

2 个答案:

答案 0 :(得分:0)

为您的字符串尝试以下正则表达式:

[0-9]{2}\/[0-9]{2}\/[0-9]{4}

正在运行的演示:https://regex101.com/r/M4fNDs/1

答案 1 :(得分:0)

使用regexp_extract

演示:

Select regexp_extract(str,'\\d{2}/\\d{2}/\\d{4}',0) as dt
from
(-- your data
select 'Sum total to percent on 02/27/2019' as str
)s

结果:

02/27/2019

在此处查看测试:http://demo.gethue.com/hue/editor?editor=282635&type=hive

正则表达式'\ d {2} / \ d {2} / \ d {4}'的意思是:两位数,斜杠两位数,斜杠,4位