蜂巢:从/分离的列中提取子字符串

时间:2019-06-06 23:32:14

标签: regex database hive hiveql

我的表中的条目条目如下:

this/is/my/dir/file
this/is/my/another/dir/file

我要显示不带/ filename的字符串:

this/is/my/dir

这是我的代码:

select regexp_replace(filepath,'[^/]+[/]$','')

2 个答案:

答案 0 :(得分:0)

您可以使用

select regexp_replace(filepath,'/[^/]+$','')

请参见regex demoregex graph

enter image description here

正则表达式详细信息

  • /-一个/字符
  • [^/]+-除/以外的1个以上的字符
  • $-字符串的结尾。

答案 1 :(得分:-1)

在这里,我们可以使用类似于以下内容的表达式:

(.+)(\/.+)

,我们的代码可能类似于:

select regexp_replace(filepath,'^(.+)(\/.+)$','$1')

select regexp_replace(filepath,'(.+)(\/.+)','$1')

我们所需的输出在第一个捕获组$1中,后跟最后一个斜杠和文件名,在第二个捕获组$2中。

Demo