一、需求
字符串中有多个分隔符,取出最后一个分隔符的字符索引
示例:
字符串为:“https://www.zhihu.com/people/my-name-is-cat”
分隔符为:“-”
(1)获取最后一个分隔符的字符索引 last_index:34
(2)获取最后一个分隔符后的字符 last_str:cat
二、hive sql实现
-- 返回最后一个分隔符的字符索引和后面的字符串
SELECT
length(url)-instr(reverse(url),'-')+2 AS last_index,
substr(url,length(url)-instr(reverse(url),'-')+2) AS last_str
FROM
(
SELECT 'https://blog.csdn.net/my-name-is-cat' AS url
)b
三、思路
由于hive sql中仅有从左开始查找的instr(),locate()的字符串函数,没有从右开始查找的字符串函数,所以只能自行实现。自行实现的思路是:
将字符串反转后找到的第一个分隔符索引即为原字符串最后一个分隔符的索引。