У меня есть строка «СПЕЦИФИЧЕСКОЕ СЛОВО БОЛЬШОЙ МИР, СПЕЦИАЛЬНОЕ СЛОВО БОЛЬШОЕ СОЛНЦЕ».Выходная строка должна выглядеть следующим образом: «SPECIFIC WORD, SPECIFIC WORD».Другими словами, я хочу удалить все после «SPECIFIC WORD», но хочу сохранить запятые.Что я пробовал до сих пор:
declare
l_string varchar2(10000);
begin
l_string := 'SPECIFIC WORD BIG WORLD,
SPECIFIC WORD BIG SUN,
SPECIFIC WORD BIG EARTH';
dbms_output.put_line(l_string);
l_string := regexp_replace(l_string, '(SPECIFIC WORD) (BIG)(.*)(,)?', '\1\4');
dbms_output.put_line(l_string);
end;
/
Проблема, с которой я столкнулся, заключается в том, что при последнем совпадении не будет запятой, но когда я отмечаю эту запятую как дополнительную последовательность, я вообще не получаю запятых.Есть ли способ обойти это?Я также пытался исправить это, играя с: https://regex101.com/, но я не мог сделать необязательные запятые, ведущие себя как отдельная группа.