如果有人可以帮我满足以下要求,那就太棒了
regex_replace(source,search_pattern,replace_pattern)
1)
Input :func_1(func_2(a,b))
output :func_1_func_2(a,b)
2)
func_1(func_2())
output :func_1_func_2()
3)
func_1(func_2()) + 3
output :func_1_func_2() + 3
4)
func_1(func_2()) + func_1(func_3())
output :func_1_func_2() + func_1_func_3()
尝试
select REGEXP_REPLACE('func_1(func_2(a,b))','func_1\(','func_1_') from dual ;
得到
func_1_func_2(a,b))
。
最后还有一个额外的
同样在上述情况下,func_1
只有5个可能的值
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试这种模式。它适用于所有示例。希望它适用于你没有展示的其他人。
select REGEXP_REPLACE(s,'(func_.)\((func_.\(.*?\))\)','\1_\2') from t ;