正则表达式以匹配2种不同的可能输入

时间:2018-12-14 12:45:54

标签: regex hive

我想使用一个正则表达式接受以下2种不同的输入:

schema/table/col1,col2
schema/table

并使其输出为:

schema/table

我在Hive UDF regexp_extract(字符串主题,字符串模式,int索引)中使用了它,我必须提供匹配的索引。

我尝试将^([^/]*/){2}|^.*与索引0一起使用,它几乎可以得到我想要的。

使用输入schema/table/col1,col2,我得到schema/table/,但是我不想要第二个/

输入schema/table,我得到的是schema/table

“ schema”,“ table”,“ col”等都是占位符。我不想对任何文本或文本长度进行硬编码。

参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

1 个答案:

答案 0 :(得分:0)

适当的正则表达式为:(^[^\/]+)\/([^\/]+)

这将返回两个具有各自值的捕获组。