Pro běžná čísla použijte digit
znaková třída jako [[:digit:]]
nebo zkratkou \d
:
SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');
Výsledek:
regexp_replace
----------------
sysds
(1 row)
Pro ostatní čísla (například ¼) to není tak jednoduché, přesněji jako dokumentace říká, že je to závislé na ctype (místním prostředí):
Můžete však použít interní procedurální jazyk PL/Perl a napsat funkci na straně serveru s požadovanými třídami znaků Unicode \p{}
:
CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
$s = $_[0];
$s =~ s/\p{N}//g;
return $s;
$$ LANGUAGE plperl;
Zkontrolujte Kapitola 41 z doc pro více informací, jak takové funkce psát.