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 ↩︎

regexp_replace函数是一种用于替换字符串中匹配指定模式的子串的函数。根据引用和引用所述,其在MySQL和Oracle中的语法有所不同。在MySQL中,语法为regexp_replace(source, pattern, replace_string),而在Oracle中,语法为regexp_replace(source, pattern, replace_string, occurrence)。请注意,occurrence参数在Oracle中表示替换第几次匹配的子串,而在MySQL中没有该参数。 此函数的返回值是将source字符串中匹配pattern的子串替换为指定字符串后的结果。如果source、pattern或occurrence参数为NULL,则返回NULL。如果replace_string为NULL且pattern有匹配,也会返回NULL。如果replace_string为NULL且pattern没有匹配,则返回原字符串。 一个常见的用例是用特定字符替换字符串中的所有数字。例如,通过使用regexp_replace函数,可以将字符串'01234abcde56789'中的所有数字替换为'#'。具体的语句如下: SELECT regexp_replace('01234abcde56789', '[0-9]', '#') AS new_str FROM dual;<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [sql函数--08---REGEXP_REPLACE的使用方法](https://blog.csdn.net/weixin_48052161/article/details/121091147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值