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
|