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

regexp_replace Unicode в PostgreSQL

За обикновени числа използвайте цифра символен клас като [[:цифра:]] или стенограма \d :

SELECT regexp_replace('s4y8sds', $$\d+$$, '', 'g');

Резултат:

 regexp_replace
----------------
 sysds
(1 row)

За други числа (например ¼) не е толкова просто, по-точно като документация казва, че зависи от ctype (локал):

Въпреки това можете да използвате вътрешен процедурен език на PL/Perl и да напишете функция от страна на сървъра с желани класове Unicode знаци \p{} :

CREATE OR REPLACE FUNCTION removeNumbersUnicode(text)
RETURNS text AS $$
    $s = $_[0];
    $s =~ s/\p{N}//g;
    return $s;
$$ LANGUAGE plperl;

Проверете Глава 41 от doc за повече информация как се пишат такива функции.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ГРЕШКА:нулевата стойност в идентификатора на колона нарушава ограничението за не-нулево

  2. Съкращения за търсене в пълен текст на PostgreSQL

  3. Синтактична грешка на PostgreSQL в параметризирана заявка на дата $1

  4. Ролята не съществува и не може да се създаде база данни, когато се използва PostgreSQL

  5. Python psycopg2 cursor.fetchall() връща празен списък, но cursor.rowcount е> 1