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
可见:匹配字符串出现了两次。