Oracle REGEXP搜索模式并在替换之前执行操作

时间:2015-03-22 01:43:33

标签: sql regex oracle oracle11g

我在Oracle 11g中有数据并且有2个方案需要解决,有人可以在这里建议解决方案

  

列中的示例数据 Name1 -Value1 + Name2 -Value2 + Name3 -Value3a + Value3b + Name4 -   Value4a + Value4b + Value4c + Name5 -Value5 +

请注意' +'是名称之间以及子值之间的分隔符(如在Value3a和value3b的情况下)

要解决2个问题

  1. 查找子字符串,其中+是子值分隔符,并将其替换为空格。 我试过但是当有多个值分隔符时它不起作用,如本例中的Value4a + Value4b + Value4c)

    REGEXP_REPLACE(column_value, '\+([^-]*\+)[^$]', \1)

  2.   

    两个+没有 - 介于两者之间告诉我它们是子值   分隔符,这就是我在模式中使用的内容。

    我有两个步骤来解决这个问题,但我试图看一个单一的语句(嵌套是否正常)可以解决它(如果下面的东西是可行的)

    REGEXP_REPLACE(column_value, '\+([^-]*\+)[^$]', Replace all + with space from \1)

    1. 其次,有没有办法可以定义2个或更多个模式来搜索
    2. REGEXP_REPLACE(column_value, Pattern one or pattern2, replacement_string)

      感谢您阅读问题

0 个答案:

没有答案