PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Sintaks regexp_matches Postgresql tidak berfungsi seperti yang diharapkan

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TimescaleDB:pilih baris terakhir secara efisien

  2. psycopg2 mapping Python :daftar dicts ke Postgres :array tipe komposit untuk pernyataan INSERT

  3. Migrasi Rails:mencoba mengubah jenis kolom dari string menjadi integer

  4. Postgres UPSERT menggunakan kembali nilai kolom dari INSERT pada UPDATE

  5. Kesalahan Postgres HStore - Operator Tidak Dikenal