sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgresql regexp_matches syntaks fungerer ikke som forventet

regexp_matches(string text, pattern text [, flags text]) funktion returnerer de registrerede værdier:

Du kan rette udtrykket ved hjælp af ikke-fangende 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 onlinedemoen .

BTW, du behøver ikke at escape - når det er i starten/slutningen af ​​parentes-udtrykket, og der ikke er behov for at undslippe hverken / heller ikke . der. Jeg foreslår også, at du fjerner {1} som a =a{1} i et hvilket som helst regex, der understøtter begrænsende kvantifikatorer.




  1. Neo4j installation

  2. Laravel 4 :Hvordan får man udvalgte/specifikke kolonner i et mange til mange forhold?

  3. Sådan finder du den næsthøjeste løn i mysql

  4. Sådan aktiveres SSL i PostgreSQL