我不知道如何在配置单元上编写regex命令来从这个字符串中提取数字前缀子字符串:211118-120569-(dhcp)。我需要返回211118,但是还可以根据数字前缀的大小灵活地返回具有较小或较大值的数字。
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-字符串运算符
\d
\\d
1条答案
按热度按时间icnyk63a1#
或
https://docs.oracle.com/javase/7/docs/api/java/util/regex/pattern.html
预定义的字符类(例如。
\d
)前面应该加上反斜杠(\\d
)index=0匹配整个模式
https://cwiki.apache.org/confluence/display/hive/languagemanual+udf#languagemanualudf-字符串运算符