Můžete použít regexp_matches()
místo toho:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];
Protože není předán žádný další příznak, regexp_matches()
vrátí pouze první shodu - ale vrátí pole, takže musíte vybrat první (a jediný) prvek z výsledku (to je [1]
část)
Pravděpodobně je dobré omezit aktualizaci pouze na řádky, které by v první řadě odpovídaly regulárnímu výrazu:
update data1
set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'