hive 统计字符串中指定字符的个数

需求

现有一个字符串,使用hivesql  统计指定字符出现的次数,比如一个字符串 “love hive”,现在需要统计“ve” 在字符串中出现的个数
select "love hive" str;
love hive

实现方案

1、先将目标字符串里的匹配字符串替换成空

select regexp_replace("love hive","ve",'') str;
lo hi

2、使用函数第一步的结果字符串的长度,在计算原有字符串的长度,两者进行求差值

select abs(length(regexp_replace("love hive", "ve", '')) - 
length("love hive")) str_l;
4

4、用差值/匹配字符串的长度即可

select abs(length(regexp_replace("love hive", "ve", '')) - length("love hive")) / 
       length("ve") str_l;
2

可见:匹配字符串出现了两次。

 

posted @ 2022-03-01 11:46  晓枫的春天  阅读(7833)  评论(0编辑  收藏  举报