sql >> Base de Datos >  >> RDS >> PostgreSQL

regexp_replace Unicode en PostgreSQL

Para números ordinarios use digit clase de carácter como [[:digit:]] o abreviado \d :

SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');

Resultado:

 regexp_replace
----------------
 sysds
(1 row)

Para otros números (por ejemplo ¼) no es tan simple, más precisamente como documentación dice que depende de ctype (locale):

Sin embargo, podría usar el lenguaje de procedimiento PL/Perl interno y escribir la función del lado del servidor con las clases de caracteres Unicode deseadas \p{} :

CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
    $s = $_[0];
    $s =~ s/\p{N}//g;
    return $s;
$$ LANGUAGE plperl;

Consulte Capítulo 41 de doc para obtener más información sobre cómo escribir tales funciones.