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

loại bỏ ký tự đặc biệt biểu thức chính quy

select '11dd$%[email protected]' as input, regexp_replace('11dd$%[email protected]', '[^[:alnum:]]') as output
from   dual
;

INPUT         OUTPUT 
------------  --------
11dd$%[email protected]  11dde11h

[:alnum:] là viết tắt cho tất cả các chữ cái (chữ cái chuẩn ASCII, chữ thường và chữ hoa) và tất cả các chữ số. [^ ... ] có nghĩa là mọi thứ NGOẠI TRỪ ... . Vì vậy, điều này sẽ thay thế mọi thứ NGOẠI TRỪ các chữ cái và chữ số bằng ... không có gì (vì chúng tôi không đưa ra đối số thứ ba cho REGEXP_REPLACE).

CHỈNH SỬA :OP đã thêm phần thứ hai vào câu hỏi.

Nếu nhiệm vụ là CHỈ xóa tất cả các ký tự chữ và số và giữ lại mọi thứ khác, chỉ cần xóa ^ từ biểu thức chính quy.

select '11dd$%[email protected]' as input, regexp_replace('11dd$%[email protected]', '[[:alnum:]]') as output
from   dual
;

INPUT         OUTPUT
------------  ------
11dd$%[email protected]  $%[email protected]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách so sánh các nhóm bộ giá trị trong sql

  2. ORA-12704:bộ ký tự không khớp

  3. Công việc Giám đốc Doanh nghiệp Oracle là Hùng

  4. JDBC:lấy kiểu mảng từ siêu dữ liệu

  5. Tại sao câu lệnh While (rs.next ()) kết thúc sau lần lặp đầu tiên?