Impala 中有 Regexp_count 替代品吗?

Is there any Regexp_count alternative in Impala?

我正在 Impala 中寻找 Oracle 的 Regexp_count 替代方案。有没有其他选择或者有什么方法可以在 Impala 中实现 regexp_count?

用一些不在您的模式中的字符替换模式,例如波浪号“~”,然后删除不是波浪号的所有内容,然后计算字符串的长度。如果初始字符串可以包含波浪号,请先将其全部删除。

例如计算模式 test 在字符串中出现的次数(也包含波浪号)'test ~something ~test, one more test~':

length(--get length (the number of tildes)
              regexp_replace(
                             regexp_replace(
                                            regexp_replace('test ~something ~test, one more test~','~',''), --remove all tildes
                                            'test','~'), --replace pattern with tilde
                              '[^~]+','') --remove everything that is not tilde
              ) --calculate the number of tildes

这将 return 3