Oracle REGEXP_REPLACE大写替换字符串

Gre*_*Cox 5 regex oracle replace

我试图从我的reg表达式大写替换字符串而没有成功:

SELECT regexp_replace('src=/i/uie_v2/js','(/uie_v2/)',upper('\1')) from dual
Run Code Online (Sandbox Code Playgroud)

回报 'src=/i/uie_v2/js'

我明白上层不能用..只是作为一个例子.关于如何实现这一点的任何想法?

Fra*_*itt 4

AFAIK,您不能直接执行此操作,但您可以拆开字符串并重建它:

SELECT regexp_replace('src=/i/uie_v2/js','(.*)(/uie_v2/)(.*)', '\1') ||
  upper(regexp_substr('src=/i/uie_v2/js','(/uie_v2/)')) || 
  regexp_replace('src=/i/uie_v2/js','(.*)(/uie_v2/)(.*)', '\3')
from dual
Run Code Online (Sandbox Code Playgroud)

我从REGEXP 上的 OTN 论坛帖子中得到了这个想法。