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

Postgresql - Bagaimana cara mengekstrak kemunculan pertama substring dalam string menggunakan pola ekspresi reguler?

Anda dapat menggunakan regexp_matches() sebagai gantinya:

update data1
  set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];

Karena tidak ada flag tambahan yang diteruskan, regexp_matches() hanya mengembalikan kecocokan pertama - tetapi mengembalikan array sehingga Anda harus memilih elemen pertama (dan satu-satunya) dari hasil (itulah [1] bagian)

Mungkin ide yang baik untuk membatasi pembaruan hanya pada baris yang akan cocok dengan regex sejak awal:

update data1
  set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.postgresql.util.PSQLException:ERROR:tidak dapat membuat serial akses karena dependensi baca/tulis di antara transaksi

  2. Bagaimana cara menggunakan input teks sebagai nama kolom dalam fungsi Postgres?

  3. Kesalahan Ruby/PgSQL pada Rails start:tidak dapat memuat file seperti itu - pg_ext (LoadError)

  4. Bagaimana Membandingkan Dua Skema di PostgreSQL

  5. Cara Mendapatkan Nomor Baris di PostgreSQL