PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

regexp_replace Unicode w PostgreSQL

W przypadku zwykłych liczb użyj digit klasa znaku jako [[:digit:]] lub skrót \d :

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

Wynik:

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

W przypadku innych liczb (na przykład ¼) nie jest to takie proste, a dokładniej jak dokumentacja mówi, że jest zależny od ctype (locale):

Możesz jednak użyć wewnętrznego języka proceduralnego PL/Perl i napisać funkcję po stronie serwera z pożądanymi klasami znaków Unicode \p{} :

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

Sprawdź Rozdział 41 z doc, aby uzyskać więcej informacji, jak pisać takie funkcje.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle's OUTER JOIN (+) na łańcuchu - Migration PostgreSQL

  2. Wybieranie rekordów między dwoma znacznikami czasu

  3. Nazwane parametry w funkcjach bazy danych z SQLAlchemy

  4. Jak ustawić zmienną ścieżki Postgres w systemie Windows 10?

  5. Najlepsze praktyki w zakresie replikacji PostgreSQL — część 2