Регулярният израз на Parado съвпада с всичко, което не е запетая, няколко пъти, последвано от връщане на каретка. Това означава, че няма да работи за нов ред или ако има запетая в текста.
Oracle поддържа многоредови изрази с помощта на m
параметър за съвпадение
. Когато използвате този режим, $
съвпада с края на всеки ред, както и с края на низа. Можете да използвате това, за да опростите израза масово до:
regexp_substr(str, '.*$', 1, 1, 'm')
Това е съвпадение на първото появяване (първия ред) на низа, който съвпада с нещо, последвано от края на низа, като се брои от първия знак.
Като пример:
with strings as (
select 'hi
hi again' as str
from dual
union all
select 'bye
and again'
from dual
)
select regexp_substr(str, '.*$', 1, 1, 'm')
from strings