【问题标题】:Using REGEXP_REPLACE for a pattern of string matching使用 REGEXP_REPLACE 进行字符串匹配模式
【发布时间】:2013-09-08 11:51:31
【问题描述】:

我有这个字符串:ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~

现在我想用~@ 替换~@anything@~,这样我的字符串看起来像:ABC1111|~@|~@|~@

如何在 Oracle 中执行此操作?我认为我们应该使用 REGEXP_REPLACE 来完成这项工作!但无法弄清楚。请帮帮我。

【问题讨论】:

    标签: regex oracle oracle11g


    【解决方案1】:
    regexp_replace('ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~',
                   '~@.+?@~',
                   '~@') 
    
    • .+? 是非贪婪表达式并返回,ABC1111|~@|~@|~@
    • .+ 是贪婪的表达方式,尽量马赫,返回ABC1111|~@

    sqlfiddle 上的演示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多