*
operatoren er som standard 'greedy'
. Du tillader alle tegn mellem distinct
og )
, i enhver mængde. og inklusive den første )
sig selv.
Som EatÅPeach foreslog, kan du gøre det ikke-grådigt med ?
:
Så her, med .*?
i stedet for .*
:
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct.*?\)')
from dual;
Eller du kan angive, at det skal være et hvilket som helst tegn undtagen )
med [^)]*
i stedet for .*
.
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct[^)]*\)')
from dual;