Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用REGEXP_REPLACE进行字符串匹配模式_Regex_Oracle_Oracle11g - Fatal编程技术网

使用REGEXP_REPLACE进行字符串匹配模式

使用REGEXP_REPLACE进行字符串匹配模式,regex,oracle,oracle11g,Regex,Oracle,Oracle11g,我有一个字符串:ABC1111~@SERIAL|u NUM_ONE@~@SERIAL|u NUM_TWO@~~~SERIAL|u NUM_THREE@ 现在我想用~-替换,~@anything@,这样我的字符串看起来像:ABC1111 | ~~~~- 在Oracle中如何执行此操作?我认为我们应该使用REGEXP\u REPLACE来完成这项工作!但我没办法弄明白。请帮帮我 regexp_replace('ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~

我有一个字符串:
ABC1111~@SERIAL|u NUM_ONE@~@SERIAL|u NUM_TWO@~~~SERIAL|u NUM_THREE@

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

在Oracle中如何执行此操作?我认为我们应该使用REGEXP\u REPLACE来完成这项工作!但我没办法弄明白。请帮帮我

regexp_replace('ABC1111|~@SERIAL_NUM_ONE@~|~@SERIAL_NUM_TWO@~|~@SERIAL_NUM_THREE@~',
               '~@.+?@~',
               '~@') 
  • +?
    是非贪婪表达式并返回,
    ABC1111 | ~@| ~@| ~@
  • +
    是贪婪的表达式,尝试尽可能多地进行运算并返回
    ABC1111 | ~@
演示在