【问题标题】:Remove all characters between two substrings in Hive SQL query删除 Hive SQL 查询中两个子字符串之间的所有字符
【发布时间】:2021-04-02 08:26:37
【问题描述】:

我有一列看起来像这样的字符串:

字符串:SECTION1/SECTION2/0000123456789/SECTION3/SECTION4 字符串:SECTION1/SECTION2/0000987654321/SECTION3/SECTION4 字符串:SECTION1/SECTION2/00005552121X/SECTION3/SECTION4 字符串:SECTION1/SECTION2/00005552222:ID/SECTION3/SECTION4

我正在尝试使用 REGEXP_REPLACE 从中间替换可变长度、alpha/num/special char 字符串并将其替换为通用的东西,这样它们都看起来像这样:

STRING:SECTION1/SECTION2/id_number_removed/SECTION3/SECTION4

我整个上午都在尝试找到正确的正则表达式来替换“/SECTION2/”和“/SECTION3/”之间的所有内容,但没有成功。

【问题讨论】:

    标签: hive hiveql regexp-replace


    【解决方案1】:

    将正则表达式模式'SECTION2/[^/]+/SECTION3' 替换为'SECTION2/id_number_removed/SECTION3'[^/]+ 表示 1 个或多个不是斜杠的字符。

    select regexp_replace(
        'STRING:SECTION1/SECTION2/00005552222:ID/SECTION3/SECTION4',
        'SECTION2/[^/]+/SECTION3', 
        'SECTION2/id_number_removed/SECTION3');
    

    给了

    STRING:SECTION1/SECTION2/id_number_removed/SECTION3/SECTION4
    

    【讨论】:

    • 完美!谢谢。
    猜你喜欢
    • 2016-07-01
    • 2012-05-14
    • 2011-01-09
    • 2019-04-02
    • 1970-01-01
    • 2015-07-23
    • 2021-05-20
    • 2013-09-02
    • 2018-11-25
    相关资源
    最近更新 更多