regexp_matches(string text, pattern text [, flags text])
fungsi mengembalikan nilai yang diambil:
Anda dapat memperbaiki ekspresi menggunakan grup yang tidak menangkap:
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'));
Lihat demo online .
BTW, Anda tidak perlu keluar dari -
ketika berada di awal/akhir ekspresi braket, dan tidak perlu keluar dari /
atau .
di sana. Saya juga menyarankan untuk menghapus {1}
sebagai a
=a{1}
di regex apa pun yang mendukung quantifier pembatas.