Le *
l'opérateur est 'gourmand' par défaut
. Vous autorisez tous les caractères entre distinct
et )
, en toute quantité. et incluant le premier )
lui-même.
Comme suggéré par EatÅPeach, vous pouvez le rendre non gourmand avec ?
:
Alors ici, avec .*?
au lieu de .*
:
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct.*?\)')
from dual;
Ou vous pouvez spécifier qu'il doit s'agir de n'importe quel caractère sauf )
avec [^)]*
au lieu de .*
.
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct[^)]*\)')
from dual;