The regexp_matches(string text, pattern text [, flags text])
funkce vrací zachycené hodnoty:
Výraz můžete opravit pomocí nezachycujících skupin:
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'));
Podívejte se na online demo .
BTW, nemusíte escapovat -
když je na začátku/konci výrazu v hranatých závorkách a není třeba escapovat ani /
ani .
tam. Navrhuji také odstranit {1}
jako a
=a{1}
v jakémkoli regulárním výrazu podporujícím omezující kvantifikátory.