gpt4 book ai didi

regex - 在 Hive 中处理正则表达式中的多个匹配项

转载 作者:可可西里 更新时间:2023-11-01 14:45:18 25 4
gpt4 key购买 nike

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

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

虽然正则表达式似乎运行良好,但它只给出了它的第一个匹配项。是否可以让配置单元给出所有可能的组合? hive 中是否有任何函数可以返回所有匹配项?

我用谷歌搜索了这个,但没有找到任何答案。任何帮助将不胜感激

谢谢

最佳答案

  1. 将每个 {prefix}{number}& 替换为 ,{number}
  2. 从第二个字符中删除结果(删除第一个 ,)
  3. 通过,将结果拆分为数组

hive> select split(substr(regexp_replace("abcsdfghj-117.3700631&poikse-118.244&",'.*?(-\\d+\\.\\d+)&',',$1'),2),',') as output;
OK
["-117.3700631","-118.244"]

关于regex - 在 Hive 中处理正则表达式中的多个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42125647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com