在 Hive 中反斜杠后获取最后一个匹配值

Get last matched value after backslash in Hive

我想提取路径的最后一部分。例如,如果我的路径是:

\abc.ksiw.com\POP-K-DRIVE\project-app\cname4789A

我想要 554789A 作为输出。

我试过 regexp_extract(col, '[\w+]+$',0) 但这不起作用。有更好的方法吗?

这个有效:

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)