Hiveql - 如何在字符串中只保留数字和空格

Posted

技术标签:

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

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

    'AAA 123 BBB 456' 'CCC 234 DDD EEE 678' 'FFFFF 7280 ZZZ 123 DDD'

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

    '123' '234' '7280'

TIA

【问题讨论】:

【参考方案1】:

使用regexp_extract函数:

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

返回123

【讨论】:

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

以上是关于Hiveql - 如何在字符串中只保留数字和空格的主要内容,如果未能解决你的问题,请参考以下文章

在JAVA中,键盘输入的字符串中包含的字母、数字和其他字符的个数如何制作?

C语言 指针s所指向的字母数字串中只包含数字和字母,实现除了字符串前的数字字符保留,其他的数字字符全部删除。

使用 gsub 在字符串中仅保留字母数字字符和空格

2.基本语法

Java标识符规则

关键字&标识符