PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

regexp_replace Unicode no PostgreSQL


Para números comuns, use digit classe de caracteres como [[:digit:]] ou abreviação \d :
SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');

Resultado:
 regexp_replace
----------------
 sysds
(1 row)

Para outros números (por exemplo ¼) não é tão simples, mais precisamente como documentação diz que é dependente de ctype (locale):

No entanto, você pode usar a linguagem procedural PL/Perl interna e escrever a função do lado do servidor com as classes de caracteres Unicode desejadas \p{} :
CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
    $s = $_[0];
    $s =~ s/\p{N}//g;
    return $s;
$$ LANGUAGE plperl;

Verifique o Capítulo 41 do doc para obter mais informações sobre como escrever essas funções.