我想使用一个正则表达式接受以下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
答案 0 :(得分:0)
适当的正则表达式为:(^[^\/]+)\/([^\/]+)
这将返回两个具有各自值的捕获组。