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

Regex menghapus semua kemunculan beberapa karakter dalam sebuah string

Gunakan translate() untuk kasus sederhana ini:

UPDATE tbl SET text = translate(text, '(;<>)', '');

Setiap karakter di parameter kedua yang tidak memiliki pasangan di parameter ketiga diganti dengan yang tidak ada.

Solusi ekspresi reguler dapat terlihat seperti ini:

regexp_replace(text, '[(;<>)]', '', 'g');

Elemen penting adalah parameter ke-4 'g' untuk menggantikan "global" bukan hanya pertandingan pertama. Parameter kedua adalah kelas karakter.
Anda berada di jalur yang benar, hanya masalah sintaks untuk regexp_replace() .

Petunjuk tentang UPDATE

Jika Anda tidak mengharapkan semua baris yang akan diubah, saya sangat menyarankan untuk menyesuaikan UPDATE . Anda pernyataan:

UPDATE tbl
SET    text =  translate(text, '(;<>)', '')
WHERE  text <> translate(text, '(;<>)', '');

Dengan cara ini Anda menghindari pembaruan kosong (mahal). (NULL tercakup secara otomatis dalam kasus khusus ini.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:memilih baris yang muncul pada hari tertentu dalam seminggu, di zona waktu tertentu

  2. Bagaimana cara mendapatkan id dari baris yang dipilih oleh fungsi agregat?

  3. Cara Memantau PostgreSQL Berjalan Di Dalam Wadah Docker:Bagian Satu

  4. Apakah data di solr didukung oleh postgres di ckan

  5. SQL INSERT tanpa menentukan kolom. Apa yang terjadi?