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.