regexp_replace を使用する よりシンプルです:
# select regexp_replace('test1234test45abc', '[^0-9]+', '', 'g');
regexp_replace
----------------
123445
(1 row)
^
not
を意味します 、したがって、ではない文字 0-9
の範囲 空の文字列''
に置き換えられます 。
'g'
は、最初の一致だけでなく、すべての一致が置き換えられることを意味するフラグです。