Можете да използвате regexp_matches()
вместо това:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Тъй като не се предава допълнителен флаг, regexp_matches()
връща само първото съвпадение - но връща масив, така че трябва да изберете първия (и единствен) елемент от резултата (това е [1]
част)
Вероятно е добра идея да ограничите актуализацията само до редове, които биха съвпаднали с регулярния израз на първо място:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'