sql >> Databáze >  >> RDS >> PostgreSQL

regexp_replace Unicode v PostgreSQL

Pro běžná čísla použijte digit znaková třída jako [[:digit:]] nebo zkratkou \d :

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

Výsledek:

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

Pro ostatní čísla (například ¼) to není tak jednoduché, přesněji jako dokumentace říká, že je to závislé na ctype (místním prostředí):

Můžete však použít interní procedurální jazyk PL/Perl a napsat funkci na straně serveru s požadovanými třídami znaků Unicode \p{} :

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

Zkontrolujte Kapitola 41 z doc pro více informací, jak takové funkce psát.




  1. Java JDBC se nemůže připojit k databázi Oracle pomocí SSL

  2. Spusťte příkaz mysql create function pomocí PHP

  3. Chyba Oracle při vytváření pohledu - ORA-01720

  4. První písmeno velké. MySQL