嗨,我是 hive 新手,我正在使用 regexp_extract 从字符串中获取子字符串
my string is '/abc/def/ghi/'
如何使用 regexp_extract 函数获取 abc 或 def 或 ghi
最佳答案
删除前导和尾随的'/'
并使用split()
获取数组。 split()也使用正则表达式:
hive> select split(regexp_replace('/abc/def/ghi/','^/|/$',''),'/')[0];
abc
hive> select split(regexp_replace('/abc/def/ghi/','^/|/$',''),'/')[1];
def
hive> select split(regexp_replace('/abc/def/ghi/','^/|/$',''),'/')[2];
ghi
或者在子查询中:
hive> select array[0], array[1], array[2]
from (select split(regexp_replace('/abc/def/ghi/','^/|/$',''),'/') as array) s;
OK
_c0 _c1 _c2
abc def ghi
Time taken: 0.192 seconds, Fetched: 1 row(s)
关于sql - hive中的REGEXP_EXTRACT获取字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54669051/