PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

espressione regolare internazionalizzata in postgresql

PostgreSQL non supporta le classi di caratteri basate sul database dei caratteri Unicode come fa .NET. Ottieni il più standard [[:alpha:]] classe di caratteri, ma questo dipende dalle impostazioni locali e probabilmente non lo coprirà.

Potresti riuscire a farla franca semplicemente inserendo nella lista nera i caratteri ASCII che non desideri e consentendo tutti i caratteri non ASCII. ad esempio qualcosa come

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

(JavaScript non ha nemmeno classi di caratteri non ASCII. O anche [[:alpha:]] .)

Ad esempio, dato v_text come variabile di testo da sanificare:

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