L'espressione regolare di Parado corrisponde più volte a tutto ciò che non è una virgola seguita da un ritorno a capo. Ciò significa che non funzionerà per un avanzamento riga o se è presente una virgola nel testo.
Oracle supporta le espressioni multiriga utilizzando m
parametro di corrispondenza
. Quando si utilizza questa modalità, $
corrisponde alla fine di ogni riga e alla fine della stringa. Puoi usarlo per semplicemente l'espressione in modo massiccio a:
regexp_substr(str, '.*$', 1, 1, 'm')
Cioè corrisponde alla prima occorrenza (la prima riga) della stringa che corrisponde a qualcosa, seguita dalla fine della stringa, a partire dal primo carattere.
Ad esempio:
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