PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

интернационализиран регулярен израз в postgresql

PostgreSQL не поддържа символни класове, базирани на Unicode Character Database, както го прави .NET. Получавате по-стандартния [[:alpha:]] символен клас, но това зависи от локала и вероятно няма да го покрие.

Може да успеете да се разминете, като просто поставите в черен списък ASCII знаците, които не желаете, и разрешите всички не-ASCII знаци. например нещо като

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

(JavaScript също няма класове знаци, различни от ASCII. Или дори [[:alpha:]] .)

Например, даден v_text като текстова променлива, която трябва да се санира:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете записи от последните 24 часа в PostgreSQL

  2. Писане към конкретни схеми с RPostgreSQL

  3. Сравнителни показатели за PostgreSQL Meltdown

  4. SQLAlchemy декларативно:дефиниране на тригери и индекси (Postgres 9)

  5. Как pg_sleep() работи в PostgreSQL