当包含(和)时使用regexp_substr提取字符串的一部分

时间:2012-08-28 18:33:20

标签: regex oracle plsql

我想使用regexp在oracle中提取字符串的以下部分:

String: FN_SUM(ACCRUED_INTEREST)
Output expected: ACCRUED_INTEREST

我试过了:

select regexp_substr('FN_SUM(ACCRUED_INTEREST)','([^)]') from dual;

这给了我ORA-12725错误。

任何使用正则表达式的解决方案都会非常感激。

2 个答案:

答案 0 :(得分:6)

尝试:

select regexp_replace('FN_SUM(ACCRUED_INTEREST)', '(.*)?\((.*)?\)(.*)?$','\2') from dual;

答案 1 :(得分:0)

为什么不使用常规替换

select replace( replace('fn_sum(value)'
               , substr('fn_sum(value)', 1, instr('fn_sum(value)', '(')))
               , ')') 
  from dual