删除hive sql查询中两个子串之间的所有字符

6ss1mwsb  于 2021-04-02  发布在  Hive
关注(0)|答案(1)|浏览(727)

我有一列字符串,看起来像这样。
string:section1/section2/0000123456789/section3/section4 string:section1/section2/0000987654321/section3/section4 string:section1/section2/00005552121x/section3/section4 string:section1/section2/00005552222:id/section3/section4
我试图使用regexp_replace来替换中间的可变长度、alpha/num/特殊字符的字符串,并用一些通用的东西来替换,所以它们看起来都是这样的。
string:section1/section2/id_number_removed/section3/section4。
我整个上午都在尝试找到正确的regex表达式来替换'/section2/'和'/section3/'之间的所有内容,但没有成功。

2nbm6dog

2nbm6dog1#

'SECTION2/id_number_removed/SECTION3'替换regex模式'SECTION2/[^/]+/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

相关问题