hive 将正向 slash/backward 斜线替换为三斜线

hive replace forward slash/backward slash with tripple slashes

我有一个 table,第一个值是 /\,我想用 3 个反斜杠 \\ 替换它。尝试了很多方法,包括连接,但到目前为止没有任何效果。感谢任何帮助。

create table test ( s1 string )

insert into test(s1) values ('/')
insert into test(s1) values ('ab')
insert into test(s1) values ('\')

select s1, regexp_replace(s1, '//','\\\\\\\') from test;

这应该有效:

regexp_replace(s1,'[/\\]', '\\\\\\')

正则表达式 [/\\] - 表示斜杠或反斜杠

它将用 3 个反斜杠替换所有出现的斜杠或反斜杠。如果要精确匹配仅包含斜杠或反斜杠的字符串,请使用锚点:^[/\\]$

同样在正则表达式中,您可以使用十六进制代码 '\x5c' 来匹配反斜杠:'[/\x5c]'