在配置单元的regex中处理多个匹配项

eoxn13cs  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(369)

我想在hive中解析出表达式中的负十进制值,我已经编写了以下正则表达式,

select regexp_extract("abcsdfghj-117.3700631&poikse-118.244&",
'([-][1-9][0-9]*[.][0-9]+)&*') as output

虽然正则表达式似乎工作得很好,但它只给了我它的第一个匹配。有没有可能让Hive发出所有可能的组合?在hive中是否有任何函数使其返回所有匹配项?
我用谷歌搜索了一下,却找不到任何答案。任何帮助都将不胜感激
谢谢

jtw3ybtb

jtw3ybtb1#

更换间隔 {prefix}{number}&,{number} 从第二个字符中剪切结果(删除第一个字符 , )
将结果拆分为数组 , ```
hive> select split(substr(regexp_replace("abcsdfghj-117.3700631&poikse-118.244&",'.*?(-\d+\.\d+)&',',$1'),2),',') as output;
OK
["-117.3700631","-118.244"]

相关问题