【发布时间】:2020-02-15 18:29:14
【问题描述】:
我的用例如下:
String text_string: "text1:message1,text3:message3,text2:message,..."
select regexp_replace(text_string, '[^:]*:([^,]*(,|$))', '$1')
Correct output: message1,message3,message2,...
该模式有效,但问题是如果消息中有字符“:”o“”,则替换不起作用。
所以我尝试在字符串中使用“::”和“,”字符作为分隔符
String text_string: "text1::message1,,text3::message3,,text2::message2,..."
select regexp_replace(text_string, '[^::]*::([^,,]*(,,|$))', '$1')
Correct output: message1,,message3,,message2,,...
但在这种情况下,如果字符串中有一个“:”或“,”字符(在文本或消息中),则替换命令不起作用。
应该如何修改正则表达式才能工作?
【问题讨论】:
标签: regex hive hiveql regexp-replace