De *
operator is standaard 'hebzuchtig'
. Je staat alle tekens toe tussen distinct
en )
, in elke hoeveelheid. en inclusief de eerste )
zelf.
Zoals EatÅPeach suggereerde, kun je het niet-hebzuchtig maken met ?
:
Dus hier, met .*?
in plaats van .*
:
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct.*?\)')
from dual;
Of u kunt specificeren dat het een willekeurig teken moet zijn, behalve )
met [^)]*
in plaats van .*
.
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct[^)]*\)')
from dual;