HIVE中regexp_extract用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIVE中regexp_extract用法相关的知识,希望对你有一定的参考价值。
参考技术A 函数描述:字符串正则表达式解析函数。-- 这个函数有点类似于 substring(str from 'regexp') ..
参数解释:
其中:
str是被解析的字符串
regexp 是正则表达式
idx是返回结果 取表达式的哪一部分 默认值为1。
0表示把整个正则表达式对应的结果全部返回
1表示返回正则表达式中第一个() 对应的结果 以此类推
注意点:
要注意的是idx的数字不能大于表达式中()的个数。
否则报错。
完
Hive str to array / regexp_extract
with releases as (select '["us","ca","fr"]' as country)
select split(regexp_extract(country,'^\\\\["(.*)\\\\"]$',1),'","')
from releases;
["us","ca","fr"]
--------
with releases as (select '["us:[abc]","ca:[abc]","fr:[abc]"]' as country)
select split(regexp_extract(country,'^\\\\["(.*)\\\\"]$',1),'","') -- 提取开头的[和结尾的]之间的内容
from releases;
["us:[abc]","ca:[abc]","fr:[abc]"]
中间的[]依然存在。
-------
with releases as (select '["us:[abc]","ca:[abc]","fr:[abc]"]' as country)
select split(regexp_extract(country,'^\\\\["(.*)\\\\"]$',1),'","') as c1 , -- ["us:[abc]","ca:[abc]","fr:[abc]"]
split(regexp_extract(country,'^\\\\["(.*)\\\\"]$',0),'","') as c2 -- ["[\\"us:[abc]","ca:[abc]","fr:[abc]\\"]"]
from releases;
0表示把整个正则表达式对应的结果全部返回
1表示返回正则表达式中第一个() 对应的结果 以此类推
Hive,regexp_extract用法--注意圆括号!!
end
以上是关于HIVE中regexp_extract用法的主要内容,如果未能解决你的问题,请参考以下文章
hive通过regexp_extract从字典串中提取密钥?
如何仅使用 Hive 中的 regexp_extract 函数提取标点符号
Hive str to array / regexp_extract