För vanliga nummer använd digit
teckenklass som [[:digit:]]
eller förkortning \d
:
SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');
Resultat:
regexp_replace
----------------
sysds
(1 row)
För andra siffror (till exempel ¼) är inte så enkelt, mer exakt som dokumentation säger att det är ctype (locale) beroende:
Men du kan använda internt PL/Perl-procedurspråk och skriva server-side-funktion med önskade Unicode-teckenklasser \p{}
:
CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
$s = $_[0];
$s =~ s/\p{N}//g;
return $s;
$$ LANGUAGE plperl;
Kolla kapitel 41 från doc för mer information om hur man skriver sådana funktioner.