sql >> Database >  >> RDS >> PostgreSQL

Postgresql regexp_matches syntaxis werkt niet zoals verwacht

De regexp_matches(string text, pattern text [, flags text]) functie retourneert de vastgelegde waarden:

U kunt de uitdrukking corrigeren met niet-vastleggende groepen:

SELECT unnest(regexp_matches('4-0001-1234 4.0001.12344  4-0-0-0-1-1234', '4(?:[\s/.-]*0){3}(?:[\s/.-]*[12])(?:[\s/.-]*\d){4}', 'g'));

Bekijk de online demo .

Tussen haakjes, je hoeft niet te ontsnappen aan - wanneer het aan het begin/einde van de haakuitdrukking staat en het niet nodig is om / te escapen noch . daar. Ik stel ook voor om {1} . te verwijderen als a =a{1} in elke regex die beperkende kwantoren ondersteunt.




  1. Hoe maak ik een SQL-query die in een bepaald percentagebereik is gegroepeerd?

  2. Hoe toon ik het schema van een tabel in een MySQL-database?

  3. Een door komma's gescheiden tekenreeks omzetten in afzonderlijke rijen

  4. Is het mogelijk om een ​​recursieve SQL-query te maken?