Parados regulære udtryk matcher alt, der ikke er et komma flere gange efterfulgt af et vognretur. Det betyder, at det ikke vil fungere for et line-feed, eller hvis der er et komma i teksten.
Oracle understøtter multi-line udtryk ved hjælp af m
match parameter
. Når du bruger denne tilstand, $
matcher slutningen af hver linje såvel som slutningen af strengen. Du kan bruge dette til blot at udtrykke massivt til:
regexp_substr(str, '.*$', 1, 1, 'm')
Det vil sige match den første forekomst (den første linje) af strengen, der matcher noget, efterfulgt af slutningen af strengen, tællet fra det første tegn.
Som et eksempel:
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