sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql regexp_matches syntax fungerar inte som förväntat

regexp_matches(string text, pattern text [, flags text]) funktion returnerar de fångade värdena:

Du kan fixa uttrycket med hjälp av icke-fångande grupper:

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'));

Se onlinedemon .

BTW, du behöver inte escape - när det är i början/slutet av hakparentesuttrycket och det inte finns något behov av att escape varken / inte heller . där. Jag föreslår också att du tar bort {1} som a =a{1} i alla regex som stöder begränsande kvantifierare.




  1. PostgreSql :Json Array till rader med hjälp av Lateral Join

  2. Kan inte ansluta till localhost-databasen från node.js-servern

  3. Värden "värdnamn" är blockerad på grund av många anslutningsfel; avblockera med 'mysqladmin flush-hosts'

  4. SQL MAX av flera kolumner?