如何在hive上使用regex\u extract提取字符串的数字前缀?

ybzsozfc  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(386)

我不知道如何在配置单元上编写regex命令来从这个字符串中提取数字前缀子字符串:211118-120569-(dhcp)。我需要返回211118,但是还可以根据数字前缀的大小灵活地返回具有较小或较大值的数字。

icnyk63a

icnyk63a1#

hive> select regexp_extract('211118-1_20569 - (DHCP)','^\\d+',0);
OK
211118

hive> select regexp_extract('211118-1_20569 - (DHCP)','^[0-9]+',0);
OK
211118
^     - The beginning of a line
\d    - A digit: [0-9]
[0-9] - the characters between '0' and '9'
X+    - X, one or more times

https://docs.oracle.com/javase/7/docs/api/java/util/regex/pattern.html

regexp_extract(string subject, string pattern, int index)

预定义的字符类(例如。 \d )前面应该加上反斜杠( \\d )
index=0匹配整个模式
https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#languagemanualudf-字符串运算符

相关问题