*
operátor je ve výchozím nastavení 'chamtivý'
. Povolujete jakékoli znaky mezi distinct
a )
, v libovolném množství. a včetně prvního )
sám.
Jak navrhl EatÅPeach, můžete to udělat tak, že nebudou chamtivé pomocí ?
:
Takže zde s .*?
místo .*
:
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct.*?\)')
from dual;
Nebo můžete zadat, že by to měl být jakýkoli znak kromě )
s [^)]*
místo .*
.
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct[^)]*\)')
from dual;