Pour les nombres ordinaires, utilisez digit
classe de caractères en tant que [[:digit:]]
ou raccourci \d
:
SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');
Résultat :
regexp_replace
----------------
sysds
(1 row)
Pour les autres nombres (par exemple ¼) ce n'est pas si simple, plus précisément comme documentation indique que cela dépend du ctype (locale) :
Cependant, vous pouvez utiliser le langage procédural PL/Perl interne et écrire une fonction côté serveur avec les classes de caractères Unicode souhaitées \p{}
:
CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
$s = $_[0];
$s =~ s/\p{N}//g;
return $s;
$$ LANGUAGE plperl;
Vérifiez Chapitre 41 de doc pour plus d'informations sur la façon d'écrire de telles fonctions.