Wyrażenie regularne Parado pasuje do wszystkiego, co nie jest wielokrotnie przecinkiem, po którym następuje powrót karetki. Oznacza to, że nie zadziała w przypadku wysuwu wiersza lub przecinka w tekście.
Oracle obsługuje wyrażenia wielowierszowe przy użyciu m
parametr dopasowania
. W tym trybie $
dopasowuje koniec każdego wiersza, a także koniec ciągu. Możesz użyć tego do uproszczenia wyrażenia masowo, aby:
regexp_substr(str, '.*$', 1, 1, 'm')
To znaczy dopasowuje pierwsze wystąpienie (pierwszy wiersz) ciągu, który pasuje do czegokolwiek, po którym następuje koniec ciągu, licząc od pierwszego znaku.
Jako przykład:
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