Du kan använda regexp_matches()
istället:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Eftersom ingen ytterligare flagga skickas, regexp_matches()
returnerar bara den första matchningen - men den returnerar en array så du måste välja det första (och enda) elementet från resultatet (det är [1]
del)
Det är förmodligen en bra idé att begränsa uppdateringen till endast rader som skulle matcha regexet i första hand:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'