需求
現有一個字符串,使用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
可見:匹配字符串出現了兩次。
