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}'