【问题标题】:Hiveql - how to keep only digits and spaces in stringHiveql - 如何在字符串中只保留数字和空格
【发布时间】:2018-06-22 21:19:04
【问题描述】:

更具体地说,如果原始字符串列是这样的

  1. 'AAA 123 BBB 456'
  2. 'CCC 234 DDD EEE 678'
  3. 'FFFFF 7280 ZZZ 123 DDD'

我最终需要的只是第一组数字,比如

  1. '123'
  2. '234'
  3. '7280'

TIA

【问题讨论】:

    标签: sql hive hiveql


    【解决方案1】:

    使用regexp_extract函数:

    select regexp_extract('AAA 123 BBB 456','[0-9]+',0) - digit one or more times 
    

    返回123

    【讨论】:

    • 谢谢。它完美地工作。我的理解是最后的零输入是一个组索引,而不是匹配索引,所以如果一个字符串中有多个匹配,regexp_extract 总是会返回第一个。我说的对吗?
    • @pingboing 对,这是正则表达式组索引,不是匹配索引
    • 是否有一种简单的方法可以在有多个匹配项时返回其他匹配项(例如,第二个匹配项)?
    • 您需要编写更复杂的正则表达式。就像在这个答案中一样:stackoverflow.com/a/23556649/2700344
    • 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多