【问题标题】:Get last matched value after backslash in Hive在 Hive 中获取反斜杠后的最后一个匹配值
【发布时间】:2021-12-30 11:00:48
【问题描述】:
我想提取路径的最后一部分。例如,如果我的路径是:
\\abc.ksiw.com\POP-K-DRIVE\project-app\cname\554789A
我想要554789A 作为输出。
我尝试使用regexp_extract(col, '[\\w+]+$',0) ,但这不起作用。有没有更好的方法来做到这一点?
【问题讨论】:
标签:
regex
hadoop
hive
special-characters
hiveql
【解决方案1】:
这行得通:
regexp_extract(col,'([^\\\\]*)$',1)
反斜杠在 Hive 和正则表达式中都是特殊字符。
四个反斜杠用于表示正则表达式中的单个反斜杠。
如果您想测试文字常量,请使用两个反斜杠,而不是文字中的一个和正则表达式中的四个:
select regexp_extract('\\\\abc.ksiw.com\\POP-K-DRIVE\\project-app\\cname\\554789A','([^\\\\]*)$',1);
结果:
554789A
(\\w+)$ 也可以:
regexp_extract(col,'(\\w+)$',1)