Puoi usare regexp_matches()
invece:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Poiché non viene passato alcun flag aggiuntivo, regexp_matches()
restituisce solo la prima corrispondenza, ma restituisce un array quindi è necessario selezionare il primo (e unico) elemento dal risultato (che è il [1]
parte)
Probabilmente è una buona idea limitare l'aggiornamento alle sole righe che corrisponderebbero all'espressione regolare in primo luogo:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'