oracle 使用 REGEXP_REPLACE 函数替换子字符
oracle replace subcharacter using REGEXP_REPLACE function
我的 table 中有以下列值,称为 TEST,我想像这样替换这些值:
XX01 -> XX1
XX02 -> XX2
XX03 -> XX3
XX04 -> XX4
XX01/ABC -> XX1/ABC
实际的意思是,我想通过用空字符串替换它来删除 0。
我已经像这样使用了oracle REPLACE函数(其他情况):
REPLACE(column_name,'0', '')
但对于这种情况,这是行不通的,因为我还有其他值,其中包含 0,但不能更改。
如何在 oracle 中使用正则表达式以适当的方式替换零?
希望您明白我的意思,对于格式错误,我们深表歉意。
干杯
使用
regexp_replace(yourValue,'(XX)0([0-4])(*)', '')
它适用于您指定的所有情况...它只会替换后跟另一个数字的 0,就像您的情况一样。如果您的 0 后面没有数字,则不会被替换。
不确定它是否正是您想要的,因为您没有告诉我们 "other 0 values that are not allowed" 的样子..
我的 table 中有以下列值,称为 TEST,我想像这样替换这些值:
XX01 -> XX1
XX02 -> XX2
XX03 -> XX3
XX04 -> XX4
XX01/ABC -> XX1/ABC
实际的意思是,我想通过用空字符串替换它来删除 0。
我已经像这样使用了oracle REPLACE函数(其他情况):
REPLACE(column_name,'0', '')
但对于这种情况,这是行不通的,因为我还有其他值,其中包含 0,但不能更改。
如何在 oracle 中使用正则表达式以适当的方式替换零?
希望您明白我的意思,对于格式错误,我们深表歉意。
干杯
使用
regexp_replace(yourValue,'(XX)0([0-4])(*)', '')
它适用于您指定的所有情况...它只会替换后跟另一个数字的 0,就像您的情况一样。如果您的 0 后面没有数字,则不会被替换。
不确定它是否正是您想要的,因为您没有告诉我们 "other 0 values that are not allowed" 的样子..