用oracle REGEXP_REPLACE 函数替换字符串的方括号

Pok*_*uri 0 regex oracle

我想用 REGEXP_REPLACE 函数替换字符串中的方括号。即使我逃避这些字符它也不会取代

select regexp_replace('VMI[[DATA]]INFO', '[\[\]]', '_') from dual;
Run Code Online (Sandbox Code Playgroud)

结果

VMI[[DATA]]INFO
Run Code Online (Sandbox Code Playgroud)

我们应该怎么做?我错过了什么吗?

A.B*_*ade 6

你可以这样做:

select regexp_replace('VMI[[DATA]]INFO', '\[|\]', '_') from dual;
Run Code Online (Sandbox Code Playgroud)

不过我觉得这里不需要正则表达式,你也可以用TRANSLATE

select translate('VMI[[DATA]]INFO', '[]', '__') from dual;
Run Code Online (Sandbox Code Playgroud)

这是一个 sqlfiddle 演示