regexp_replace复制oracle中的子字符串

时间:2016-12-16 07:00:05

标签: regex oracle

要求

有一项要求。当','存在时,regexp_replace必须复制子字符串no.of。

(,xyz,,12,).*必须替换为(,xyz,,12,).*(,xyz,,12,).*

实施例

    Input : (.*(,ELF,,NLF,).*)@(.*(,ABC,,CDF,,SDE,).*)

    Output : (.*(,ELF,,NLF,).*(,ELF,,NLF,).*)@(.*(,ABC,,CDF,,SDE,).*(,ABC,,CDF,,SDE,).*(,ABC,,CDF,,SDE,).*)

请帮忙。可以使用regexp_replace来完成吗?

1 个答案:

答案 0 :(得分:0)

是的,它可以。试试这个:

select regexp_replace('(.*(,ELF,,NLF,).*)@(.*(,ABC,,CDF,,SDE,).*)'
                     ,'(\.\*[A-Z,\(\)]+)\.\*\)@\((\.\*[A-Z,\(\)]+)\.\*\)'
                     ,'\1\1.*)@(\2\2\2.*)') 
from dual;

这完全是您发布的示例。