首页 > 解决方案 > 如何在 Hive 中构建正则表达式以获取字符串,直到第 N 次出现分隔符

问题描述

我在 Hive 中有一些示例数据

select "abc:def:ghi:jkl" as data
union all
select "jkl:mno:23ar:stu:abc:def:ghi:7345" as data

我想提取字符串直到第 3 个冒号,以便得到输出

abc:def:ghi
jkl:mno:23ar

我想保持 N 作为变量,以便我可以根据需要缩小输出文本。我如何在 Hive 中执行此操作?

标签: regexhivehiveql

解决方案


Select substring_index('abc:def:ghi:jkl',':',3) as data
Union all
Select substring_index('jkl:mno:23ar:stu:abc:def:ghi:7345',':',3) as data;

推荐阅读