Korzystanie z regexp_replace jest prostsze:
# select regexp_replace('test1234test45abc', '[^0-9]+', '', 'g');
regexp_replace
----------------
123445
(1 row)
^
oznacza not
, czyli każdy znak, który nie w zakresie 0-9
zostanie zastąpiony pustym ciągiem, ''
.
'g'
to flaga, która oznacza, że wszystkie dopasowania zostaną zastąpione, a nie tylko pierwsze dopasowanie.