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

expresión regular internacionalizada en postgresql

PostgreSQL no admite clases de caracteres basadas en la base de datos de caracteres Unicode como lo hace .NET. Obtienes el [[:alpha:]] más estándar clase de carácter, pero esto depende de la configuración regional y probablemente no lo cubra.

Es posible que pueda salirse con la suya simplemente poniendo en la lista negra los caracteres ASCII que no desea y permitiendo todos los caracteres que no son ASCII. por ejemplo, algo como

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

(JavaScript tampoco tiene clases de caracteres que no sean ASCII. O incluso [[:alpha:]] .)

Por ejemplo, dado v_text como una variable de texto para sanear:

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