sql函数--08---REGEXP_REPLACE的使用方法

REPLACE

  • 假设您的数据在正文中有不必要的空格,您希望用单个空格来替换它们。利用REPLACE函数

案例:

  • REPLACE函数的参数指定要用一个空格来替换两个空格
SELECT REPLACE('Joe Smith',' ', ' ')  

在这里插入图片描述

  • 去空格
SELECT REPLACE('Joe Smith',' ', '')  

在这里插入图片描述

  • 用其他符号
    在这里插入图片描述

REGEXP_REPLACE

命令格式:

regexp_replace(source, pattern, replace_string, occurrence)

参数说明:

● source: string类型,要替换的原始字符串。
● pattern: string类型常量,要匹配的正则模式,pattern为空串时抛异常。
● replace_string:string,将匹配的pattern替换成的字符串。

occurrence: bigint类型常量,必须大于等于0
大于0:表示将第几次匹配替换成replace_string,
等于0:表示替换掉所有的匹配子串。
其它类型或小于0抛异常。

注意:

Oracle: regexp_replace(source, pattern, replace_string, occurrence)
mysql: regexp_replace(source, pattern, replace_string)

返回值:

  • 将source字符串中匹配pattern的子串替换成指定字符串后返回,当输入source, pattern,
    occurrence参数为NULL时返回NULL,若replace_string为NULL且pattern有匹配,返回NULL,replace_string为NULL但pattern不匹配,则返回原串。

常用案例

1、用’#‘替换字符串中的所有数字

 SELECT regexp_replace('01234abcde56789','[0-9]','#') AS new_str FROM dual;

结果:#####abcde#####

在这里插入图片描述
用’#‘替换字符串中的数字0、9

SELECT regexp_replace('01234abcde56789','[09]','#') AS new_str FROM DUAL;

结果:#1234abcde5678#
在这里插入图片描述

Oracle:

regexp_replace(source, pattern, replace_string, occurrence)

在这里插入图片描述

3、格式化手机号,

  • 将+86 13811112222转换为(+86) 138-1111-2222,’+‘在正则表达式中有定义,需要转义。\1表示引用的第一个组
SELECT regexp_replace('+86 13811112222','(\\+[0-9]{2})( )([0-9]{3})([0-9]{4})([0-9]{4})','(\\1)\\3-\\4-\\5');

在这里插入图片描述
在这里插入图片描述

其他

注意:
mysql: regexp_replace(source, pattern, replace_string)

在这里插入图片描述

正则符号释义:

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值