Impala - 如何获取字符串中倒数第三次出现的字符

Impala - How to get the third to last occurrence of a character within a string

我有以下字符串:

SELECT '00000-AAA1-1111-BBBB1-010101-CCCC1' as Word
FROM Table_A

我有上面的字符串我只想提取倒数第​​三个和最后一个出现之间的字符串。

基本上,我想提取以下字符串:

'BBBB1'

我正在尝试这样做,但它给了我错误的结果:

 substr(Word, 1, length(a.cod_system_shipment_detail) - length(reverse(split_part(reverse(Word),'|',1))))

 "00000-AAA1-1111-BBBB1-010101-"

如何从上面的字符串中只提取 BBBB1?

谢谢!

如果想按-分割得到第三个元素,可以按下面的方法

SELECT split_part('00000-AAA1-1111-BBBB1-010101-CCCC1', '-',4);