Oracle 替换方括号 REGEX_REPLACE

Oracle replace square brackets REGEX_REPLACE

我的一个 table 中有字符串,我需要在其中替换一些特殊字符,例如 ' _ ? ° 和方括号 [ ]。 当我尝试这个时,它按预期工作:

SELECT REGEXP_REPLACE('BIG''EAST_?°[]', '[_?°'']', ' ') FROM DUAL;

我得到:

BIG EAST   []

然后我在正则表达式中添加方括号:

SELECT REGEXP_REPLACE('BIG''EAST_?°[]', '[_?°''\[\]]', ' ') FROM DUAL;

我预计会这样:

BIG EAST

但我得到:

BIG'EAST_?° 

如何正确转义正则表达式中的方括号?

您需要添加 * 以匹配您的模式中多次出现(且以任何顺序)的字符

SELECT REGEXP_REPLACE('BIG''EAST_?°[]', '[_?°''\[\]]*', ' ') FROM DUAL;