RegEx in MySql Statement funktioniert nicht

Werbung:
nun, wenn alle Versuche, es zu nutzen fehlschlagen ...

PostgreSQL hat keine Funktion regexp_substring, aber regexp_matches. Es arbeitet etwas anders, es gibt im Prinzip eine Tabelle aller matchenden Strings zurück. Wenn es sicher nur einer ist, kann man das via unnest() in einen 1-zeilige Treffer bringen:

Code:
test=*# select * from maris ;
 id |                                                             t                                                             
----+---------------------------------------------------------------------------------------------------------------------------
  1 | magnalister-Verarbeitung (Amazon)Marketplace Bestellnummer: 306-3584295-9664328** BUSINESS ORDER **Purchase Order Number:
(1 row)

test=*# select *, regexp_matches(t, '\w\d{2}-?\d{7}-?\d{7}') from maris ;
 id |                                                             t                                                             |    regexp_matches     
----+---------------------------------------------------------------------------------------------------------------------------+-----------------------
  1 | magnalister-Verarbeitung (Amazon)Marketplace Bestellnummer: 306-3584295-9664328** BUSINESS ORDER **Purchase Order Number: | {306-3584295-9664328}
(1 row)

test=*# select *, unnest(regexp_matches(t, '\w\d{2}-?\d{7}-?\d{7}')) from maris ;
 id |                                                             t                                                             |       unnest       
----+---------------------------------------------------------------------------------------------------------------------------+---------------------
  1 | magnalister-Verarbeitung (Amazon)Marketplace Bestellnummer: 306-3584295-9664328** BUSINESS ORDER **Purchase Order Number: | 306-3584295-9664328
(1 row)

test=*#
 
Zurück
Oben