Đố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.