Oracle替换方括号REGEX_REPLACE

时间:2019-01-30 08:49:16

标签: sql oracle regexp-replace

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

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

我得到:

BIG EAST   []

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

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

我期望这样:

BIG EAST

但是我得到:

BIG'EAST_?° 

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

1 个答案:

答案 0 :(得分:1)

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

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