sql >> Database teknologi >  >> RDS >> Oracle

eliminering af regulære udtryk specialtegn

select '11dd$%example@sqldat.com' as input, regexp_replace('11dd$%example@sqldat.com', '[^[:alnum:]]') as output
from   dual
;

INPUT         OUTPUT 
------------  --------
11dd$%example@sqldat.com  11dde11h

[:alnum:] er stenografi for alle bogstaver (standard ASCII-bogstaver, små og store bogstaver) og alle cifre. [^ ... ] betyder alt UNDTAGET ... . Så dette vil erstatte alt UNDTAGET bogstaver og cifre med... ingenting (da vi ikke gav et tredje argument til REGEXP_REPLACE).

REDIGER :OP tilføjede en anden del til spørgsmålet.

Hvis opgaven KUN er at fjerne alle de alfanumeriske tegn og beholde alt andet, skal du blot fjerne ^ fra det regulære udtryk.

select '11dd$%example@sqldat.com' as input, regexp_replace('11dd$%example@sqldat.com', '[[:alnum:]]') as output
from   dual
;

INPUT         OUTPUT
------------  ------
11dd$%example@sqldat.com  $%example@sqldat.com



  1. Din ultimative guide til SQL Join:CROSS JOIN – Del 3

  2. Kan jeg indstille (inden for dbasen) en størrelsesgrænse på et bytea-felt i PostgreSQL?

  3. Hvorfor får jeg Kan ikke sende parameter 2 ved referencefejl, når jeg bruger bindParam med en konstant værdi?

  4. Grails 3 - Gradle afhængigheder Mysql Connector