蜂巢-拆分功能中的正则表达式不提供输出。它是空的

时间:2018-10-02 22:03:53

标签: regex hive hiveql

我想使用配置单元查询将字符串分成四个字符。

输入:abcdefghijkl

select split("abcdefghijkl", '([a-zA-Z0-9]{4})') from table limit 1;

输出为["","","",""]

要求的输出:["abcd","efgh","ijkl"]

1 个答案:

答案 0 :(得分:0)

您可以使用

select split(regexp_replace("abcdefghijkl",'.*?([a-zA-Z0-9]{4})',',$1'),',') as output;

.*?([a-zA-Z0-9]{4})模式匹配

  • .*?-任意0个以上的字符,尽可能少
  • ([a-zA-Z0-9]{4})-捕获第1组:4个字母数字字符

将匹配项替换为,和组1的内容。然后,split用逗号分隔结果。