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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM