【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 2017-10-10
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多