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

expressão regular internacionalizada no postgresql


O PostgreSQL não suporta classes de caracteres baseadas no banco de dados de caracteres Unicode como o .NET. Você obtém o [[:alpha:]] mais padrão classe de caracteres, mas isso depende da localidade e provavelmente não a cobrirá.

Você pode conseguir apenas colocar na lista negra os caracteres ASCII que não deseja e permitir todos os caracteres não ASCII. por exemplo, algo como
[^\s!"#$%&'()*+,\-./:;<=>?\[\\\]^_`~]+

(JavaScript também não tem classes de caracteres não ASCII. Ou mesmo [[:alpha:]] .)

Por exemplo, dado v_text como uma variável de texto a ser sanitizada:
-- Allow internationalized text characters and remove undesired characters
v_text = regexp_replace( lower(trim(v_text)), '[!"#$%&()*+,./:;<=>?\[\\\]\^_\|~]+', '', 'g' );