@ wp78de дает очень хороший совет по использованию REGEX_REPLACE .Я позволяю вам выбрать группу захвата.Используя ваше регулярное выражение, это выглядело бы так, хотя вам не нужны здесь две группы, и здесь достаточно одной.
select
regexp_replace(
'abcd1234df-TEXT_I-WANT',
'(\\w\\w\\w\\w\\w\\w\\w\\w\\w\\w\\W)(.*)',
'$2' -- replacement selecting 2nd capture group
);
Другой вариант, хотя и менее гибкий, использует REGEX_SUBSTR с набором параметров e
( Извлечение подстроки с помощью подвыражения ).Это позволяет вам выбрать подстроку, но только из первой группы захвата в вашем регулярном выражении.Вы также должны установить параметры position и occurence по умолчанию 1
:
Используя предложенный вами REGEX, но только с 1 группой:
select
regexp_substr(
'abcd1234df-TEXT_I-WANT',
'\\w\\w\\w\\w\\w\\w\\w\\w\\w\\w\\W(.*)',
1, -- position
1, -- occurrence
'e' -- parameters
);