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

Postgres:ekstrak teks hingga Karakter ke-N dalam sebuah String

Anda dapat menggunakan pencocokan pola fungsi di Postgres.

Pertama-tama temukan polanya untuk menangkap semuanya hingga > fourth keempat karakter.

Untuk memulai pola Anda, Anda harus membuat sub-grup yang menangkap non > karakter, dan satu > karakter:

([^>]*>)

Kemudian tangkap empat kali untuk mendapatkan contoh keempat >

([^>]*>){4}

Kemudian, Anda perlu membungkusnya dalam grup sehingga kecocokan mengembalikan keempat contoh:

(([^>]*>){4})

dan letakkan awal simbol string untuk ukuran yang baik untuk memastikannya hanya cocok dari awal String (bukan di tengah):

^(([^>]*>){4})

Berikut adalah contoh regex101 yang berfungsi!

Setelah Anda memiliki pola yang akan mengembalikan apa yang Anda inginkan di elemen grup pertama (yang dapat Anda beri tahu di regex online di panel sisi kanan), Anda harus memilihnya kembali di SQL.

Di Postgres, fungsi substring memiliki opsi untuk menggunakan pola regex untuk mengekstrak teks dari input menggunakan pernyataan 'dari' di substring.

Untuk menyelesaikan, gabungkan semuanya!

select substring(filter_type from '^(([^>]*>){4})')
from filter_table

Lihat sqlfiddle yang berfungsi di sini

Jika Anda ingin mencocokkan seluruh string setiap kali ada kurang dari empat contoh > , gunakan ekspresi reguler ini:

 ^(([^>]*>){4}|.*)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa memasukkan komentar kolom di PostgreSQL melalui Python?

  2. Pemicu postgres untuk memperbarui cache Java

  3. Postgres - Kembalikan kesalahan pada pembaruan jika catatan tidak ditemukan

  4. Tangani WAKTU DENGAN ZONA WAKTU dengan benar di PostgreSQL

  5. Mendeteksi perubahan kolom dalam pemicu pembaruan postgres