Oracle正则表达式REGEXP_REPLACE

时间:2018-08-17 22:20:11

标签: regex oracle

我想替换特定的字符串格式(忽略^之后出现的数字)。

例如: 在这里,我想替换所有出现的字符串[XYZ^abc^0^0],其中任何数字都可以代替^0^0,例如[XYZ^abc^0^0][XYZ^abc^20^10]等。

输入字符串:[XYZ^abc^0^1][dfgf^fgfgf^0^0][ggfgf^ererer^0^0][XYZ^abc^20^1][mkkfg^oorjj^0^0][XYZ^abc^0^0]

预期输出:[dfgf^fgfgf^0^0][ggfgf^ererer^0^0][mkkfg^oorjj^0^0]

我尝试了包括以下内容在内的许多组合,但均未成功:

SELECT
  REGEXP_REPLACE('[XYZ^abc^0^1][dfgf^fgfgf^0^0][ggfgf^ererer^0^0][XYZ^abc^20^1][mkkfg^oorjj^0^0][XYZ^abc^0^0]',
                 '[XYZ^abc^\^[[:digit:]]{1,}\^[[:digit:]]{1,}\]'
                 ) "REGEXP_REPLACE" from dual

感谢您的帮助!

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要转义应按实际处理的方括号。您并没有转义所有start_date= datetime(2018, 8, 15, 9) schedule_interval='@daily' 个字符,并且还有一个额外的^个字符。

此外,^可以写为{1,}

+