REGEXP_REPLACE函数-ORACLE

REGEXP_REPLACE函数:REGEXP_REPLACE(s1,s2[,s3]) 使用s3字符串替换出现在s1字符串中的所有s2字符串,并返回替换后的字符串;正则表达式替换
select REGEXP_REPLACE(‘aa11234bb我都递收到3112’,’[0-9]’,‘h’) from dual; 将每个数字都替换成h
select REGEXP_REPLACE(‘aa11234bb我都递收到3112’,’[^0-9]’,‘h’) from dual; 将非数字替换成h
select REGEXP_REPLACE(‘aa11234bb我都递收到3112’,’[0-9]+’,‘h’) from dual; 将一个或多个(连在一起的数字)替换成h
select REGEXP_REPLACE(‘111aa11234bb我都递收到3112’,’1+’,‘h’) from dual; 将以数字开头的部分替换成h
select REGEXP_REPLACE(‘111aa11234bb我都递收到3112’,’[0-9]+$’,‘h’) from dual; 将以数字结尾的部分替换成h
select REGEXP_REPLACE(‘111aa112cde34k我都递收到3112’,’[a-i]+’,‘h’) from dual; 将a到i的字符替换成h
select REGEXP_REPLACE(‘111aa112cde34k我都递收到3112’,’[0-9]+|[a-d]+’,‘h’) from dual; |代表或者的关系
select REGEXP_REPLACE(‘111aa112cde34k我都递收到3112’,’[0-9]+[a-d]+’,‘h’) from dual; 将数字(多个)和[a-d]连接在一起的字符替换成h
select REGEXP_REPLACE(‘111aa112cde34k我都递收到3112’,’[0-9]+[a-d]?’,‘h’) from dual;
select REGEXP_REPLACE(‘111aa 112cde 34k我都递收到3112’,’[[:space:]]+’,‘h’) from dual; 及那个空格替换成h

**+:表示匹配前面的字表达式1次或多次(*号表示至少匹配0次)
^:匹配输入字符串开始的位置,对应like中的like ’xxx%’,即没有前模糊查询(^在[]中括号表示否的意思)
$:匹配输入字符串结束的位置,对应like中的like ’%xxx’,即没有后模糊查询
|:代表或者的关系
?:0个或1个
前后加上^$表示精准匹配,即like ’xxx’**
select d1 from t1 where regexp_like(d1,’^[0-9a-zA-Z]+$’)
字符簇: 
[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[:punct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

  1. 0-9 ↩︎

你可能感兴趣的:(笔记,oracle)