oracle使用REGEXP_REPLACE函数替换子字符

时间:2015-01-14 13:37:59

标签: oracle regexp-replace

我的表中有以下列值,名为TEST,并希望像这样替换这些值:

  

XX01 - > XX1

     

XX02 - > XX2

     

XX03 - > XX3

     

XX04 - > XX4

     

XX01 / ABC - > XX1 / ABC

实际意思是,我想通过用空字符串替换它来删除0。

我已经使用了oracle REPLACE函数(其他情况):

  

REPLACE(column_name,' 0','')

但是对于这种情况,这不起作用,因为我有其他值,包含0,但不能更改。

如何在oracle中使用reg表达式以适当的方式替换零?

我希望你明白我的观点并抱歉格式不好。

欢呼声

1 个答案:

答案 0 :(得分:0)

使用

regexp_replace(yourValue,'(XX)0([0-4])(*)', '\1\2\3')

它将适用于您指定的所有情况......如果后面跟着另一个数字,它将仅替换0,就像您拥有的那样。如果您的0后面没有数字,则不会被替换。

不确定它是否正是您想要的,因为您没有告诉我们“其他0不允许的值”是什么样的..