使用regx_replace替换字符之间的字符串

时间:2019-06-17 04:49:00

标签: oracle plsql

我有一列,其中包含-$ test test12 $ test14之类的值 我必须更新值$$之间。 像-$ test done $ test14

我尝试使用:-

解决此问题
select REGEXP_REPLACE('$test test12$ test14','$(.*?)$','test done') from dual

但不起作用

给出字符串-$ test test12 $ test14 预期结果-已完成$ test $ test14

1 个答案:

答案 0 :(得分:4)

字符$是rexeg 元字符,具有特殊含义(表示输入或当前行的结尾)。您要定位文字$,然后需要对其进行转义:

SELECT
    REGEXP_REPLACE('$test test12$ test14', '\$(.*?)\$','$test done$')
FROM dual;

以上输出:

$test done$ test14