Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ekspresi reguler penghapusan karakter khusus

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

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

[:alnum:] adalah singkatan untuk semua huruf (huruf ASCII standar, huruf kecil dan besar) dan semua angka. [^ ... ] berarti semuanya KECUALI ... . Jadi, ini akan menggantikan semuanya KECUALI huruf dan angka dengan... tidak ada (karena kami tidak memberikan argumen ketiga untuk REGEXP_REPLACE).

EDIT :OP menambahkan bagian kedua ke pertanyaan.

Jika tugasnya adalah untuk menghapus semua karakter alfanumerik HANYA, dan untuk menyimpan yang lainnya, cukup hapus ^ dari ekspresi reguler.

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. Layanan Data Oracle REST apex_pu

  2. Cara Mengatur Audit Oracle EBS

  3. Paksa Oracle Jatuhkan Tabel Temp Global

  4. Prosedur Tersimpan dengan beberapa Parameter IN

  5. Oracle Substring REGEXP