PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

expression régulière internationalisée dans postgresql

PostgreSQL ne prend pas en charge les classes de caractères basées sur la base de données de caractères Unicode comme le fait .NET. Vous obtenez le [[:alpha:]] plus standard classe de caractères, mais cela dépend des paramètres régionaux et ne le couvrira probablement pas.

Vous pourrez peut-être vous contenter de mettre sur liste noire les caractères ASCII que vous ne voulez pas et d'autoriser tous les caractères non ASCII. par exemple quelque chose comme

[^\s!"#$%&'()*+,\-./:;<=>?\[\\\]^_`~]+

(JavaScript n'a pas non plus de classes de caractères non ASCII. Ou même [[:alpha:]] .)

Par exemple, étant donné v_text comme variable de texte à nettoyer :

-- Allow internationalized text characters and remove undesired characters
v_text = regexp_replace( lower(trim(v_text)), '[!"#$%&()*+,./:;<=>?\[\\\]\^_\|~]+', '', 'g' );