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

regexp_replace Unicode di PostgreSQL

Untuk bilangan biasa gunakan digit kelas karakter sebagai [[:digit:]] atau singkatan \d :

SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');

Hasil:

 regexp_replace
----------------
 sysds
(1 row)

Untuk nomor lain (misalnya ) tidak sesederhana itu, lebih tepatnya dokumentasi mengatakan itu tergantung ctype (lokal):

Namun Anda bisa menggunakan bahasa prosedural PL/Perl internal dan menulis fungsi sisi server dengan kelas karakter Unicode yang diinginkan \p{} :

CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
    $s = $_[0];
    $s =~ s/\p{N}//g;
    return $s;
$$ LANGUAGE plperl;

Lihat Bab 41 dari doc untuk info lebih lanjut cara menulis fungsi tersebut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan Database Postgres:relasi tidak ada

  2. Postgres:Melewati tipe khusus dari Java ke fungsi postgres

  3. Hibernasi sisipan multi baris postgresql

  4. Metode aman untuk menyimpan/mengambil kunci pribadi dan frasa sandi PGP?

  5. Gabung di beberapa tabel menggunakan on . yang berbeda