我想在hive中解析出表达式中的负十进制值,我已经编写了以下正则表达式,
select regexp_extract("abcsdfghj-117.3700631&poikse-118.244&", '([-][1-9][0-9]*[.][0-9]+)&*') as output
虽然正则表达式似乎工作得很好,但它只给了我它的第一个匹配。有没有可能让Hive发出所有可能的组合?在hive中是否有任何函数使其返回所有匹配项?我用谷歌搜索了一下,却找不到任何答案。任何帮助都将不胜感激谢谢
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"]
{prefix}{number}&
,{number}
,
1条答案
按热度按时间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"]