度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1384|回复: 4
打印 上一主题 下一主题

[分享] ORACLE中的字符串替换 replce、regexp_replace 和 translate

[复制链接]

348

主题

3572

帖子

9325

积分

论坛元老

Rank: 8Rank: 8

积分
9325
跳转到指定楼层
楼主
发表于 2020-2-16 22:41:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、语法

repalce(str_source,str1,str2)  把 str_source 中 str1 字符串替换为 str2 字符串,当 str2 为 null 或'' 时,与下个作用相同

replace(str_source,str1)         把str_source 中的 str1 字符串剔除

regexp_replace(str_source,pattern_str,rep_str) 支持正则表达式,用法类似于 replace,但功能更强大

regexp_replace(str_source,pattern_str)   把 str_source 中的 pattern_str 字符串剔除

translate(str_source,chr1,chr2) 以字符为单位,把 str_source 中的 chr1 字符对应替换为 chr2。如果 chr1 比chr2 长,那么在 chr1 中而不在 chr2 中的字符将被剔除,因为没有对应的替换字符。需注意 chr2 不能为 null 或'',否则返回值也为空



二、示例



(1)select replace('abcc123','abc','123'),replace('abcc123','abc') from dual;

REPLACE('ABCC123','ABC','123') REPLACE('ABCC123','ABC')
------------------------------ ------------------------
123c123                        c123





(2)select regexp_replace('abcc123','abc','*'),regexp_replace('abcc123','[ac]','*'),regexp_replace('abcc123','[ac]') from dual;

REGEXP_REPLACE('ABCC123','ABC' REGEXP_REPLACE('ABCC123','[AC] REGEXP_REPLACE('ABCC123','[AC]
------------------------------ ------------------------------ ------------------------------
*c123                          *b**123                        b123
1、用字符串'*'替换 'abc'字符串;

2、用字符串'*'替换 'a'和'c'字符,涉及到正则表达式的用法。



(3)select translate('abcc123a','abc','-+='),translate('abcc123a','abc','-+'),translate('abcc123a','#abc','#') from dual;

TRANSLATE('ABCC123A','ABC','-+ TRANSLATE('ABCC123A','ABC','-+ TRANSLATE('ABCC123A','#ABC','#
------------------------------ ------------------------------ --------------------
-+==123-                       -+123-                         123
1、用字符'-'、'+'、'='对应替换'a','b','c'字符;

2、'abc'长度为 3,'-+'长度为 2,字符'c'没有对应的字符来替换,因此被剔除掉;

3、剔除掉字符'a'、'b'、'c',translate 有 # 的特殊用法,以 # 开头的表示所有字符。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9325

积分

论坛元老

Rank: 8Rank: 8

积分
9325
沙发
 楼主| 发表于 2020-2-16 22:42:38 | 只看该作者
给你们来点全面的,对比哈
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-2-17 00:17:03 | 只看该作者
还不错,挺全面的。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
地板
发表于 2020-2-17 08:36:03 | 只看该作者
用途很大。非常常用。
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
5#
发表于 2020-2-18 13:31:13 | 只看该作者
不错,收藏一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-23 23:20 , Processed in 0.127558 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表