De reguliere expressie van Parado komt meerdere keren overeen met alles wat geen komma is, gevolgd door een regelterugloop. Dit betekent dat het niet werkt voor een regelinvoer of als er een komma in de tekst staat.
Oracle ondersteunt expressies met meerdere regels met behulp van de m
overeenkomstparameter
. Bij gebruik van deze modus, $
komt overeen met het einde van elke regel en het einde van de tekenreeks. Je kunt dit gebruiken om de uitdrukking gewoon massaal te gebruiken om:
regexp_substr(str, '.*$', 1, 1, 'm')
Dat is overeenkomen met het eerste voorkomen (de eerste regel) van de tekenreeks die ergens mee overeenkomt, gevolgd door het einde van de tekenreeks, geteld vanaf het eerste teken.
Als voorbeeld:
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