PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

regexp_replace Unicode trong PostgreSQL

Đối với các số thông thường, hãy sử dụng digit lớp ký tự dưới dạng [[:digit:]] hoặc viết tắt \d :

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

Kết quả:

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

Đối với các số khác (ví dụ:¼) không đơn giản như vậy, chính xác hơn là tài liệu cho biết nó phụ thuộc ctype (ngôn ngữ):

Tuy nhiên, bạn có thể sử dụng ngôn ngữ thủ tục PL / Perl nội bộ và viết hàm phía máy chủ với các lớp ký tự Unicode mong muốn \p{} :

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

Kiểm tra Chương 41 từ doc để biết thêm thông tin về cách viết các hàm như vậy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psql:FATAL:vai trò lang thang không tồn tại

  2. Người dùng Postgres không tồn tại?

  3. Tạo n hàng NULL trong PostgreSQL

  4. Django / PostgreSQL varchar thành UUID

  5. Cách triển khai PostgreSQL vào Docker Container bằng ClusterControl