【发布时间】:2013-09-08 11:51:31
【问题描述】:
我有这个字符串:ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~
现在我想用~@ 替换~@anything@~,这样我的字符串看起来像:ABC1111|~@|~@|~@
如何在 Oracle 中执行此操作?我认为我们应该使用 REGEXP_REPLACE 来完成这项工作!但无法弄清楚。请帮帮我。
【问题讨论】:
我有这个字符串:ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~
现在我想用~@ 替换~@anything@~,这样我的字符串看起来像:ABC1111|~@|~@|~@
如何在 Oracle 中执行此操作?我认为我们应该使用 REGEXP_REPLACE 来完成这项工作!但无法弄清楚。请帮帮我。
【问题讨论】:
regexp_replace('ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~',
'~@.+?@~',
'~@')
.+? 是非贪婪表达式并返回,ABC1111|~@|~@|~@
.+ 是贪婪的表达方式,尽量马赫,返回ABC1111|~@
sqlfiddle 上的演示。
【讨论】: