*
операторът е „алчен“ по подразбиране
. Позволявате всякакви знаци между distinct
и )
, във всякакви количества. и включително първия )
себе си.
Както предложи EatÅPeach, можете да го направите неалчен с ?
:
Така че тук, с .*?
вместо .*
:
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct.*?\)')
from dual;
Или можете да посочите, че трябва да бъде произволен знак освен )
с [^)]*
вместо .*
.
select regexp_substr(
'select count(distinct empno), count(distinct deptno) from emp',
'count\(distinct[^)]*\)')
from dual;