Oracle正则表达式REGEXP\u REPLACE
我想替换一种特殊的字符串格式(忽略^之后出现的数字) 例: 在这里,我想替换所有出现的字符串Oracle正则表达式REGEXP\u REPLACE,regex,oracle,Regex,Oracle,我想替换一种特殊的字符串格式(忽略^之后出现的数字) 例: 在这里,我想替换所有出现的字符串[XYZ^abc^0^0],其中任何数字都可以代替^0^0,如[XYZ^abc^0^0]或[XYZ^abc^20^10]等 输入字符串:[XYZ^abc^0^1][dfgf^fgf^0^0][ggfgf^errer^0^0][XYZ^abc^20^1][mkkfg^oorjj^0^0][XYZ^abc^0^0][XYZ code> 预期输出:[dfgf^fgfgf^0^0][ggfgf^erer^0^0]
[XYZ^abc^0^0]
,其中任何数字都可以代替^0^0
,如[XYZ^abc^0^0]
或[XYZ^abc^20^10]
等
输入字符串:[XYZ^abc^0^1][dfgf^fgf^0^0][ggfgf^errer^0^0][XYZ^abc^20^1][mkkfg^oorjj^0^0][XYZ^abc^0^0][XYZ code>
预期输出:[dfgf^fgfgf^0^0][ggfgf^erer^0^0][mkkfg^oorj0^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,}
可以写成+
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:]]+\^[[:digit:]]+\]'
) "REGEXP_REPLACE" from dual
将\[XYZ\^abc^\d+\^\d+\]
替换为空。太棒了。。。非常感谢!真管用。。!