ORACLE中的字符串替换 replce、regexp_replace 和 translate

一、语法

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 有 # 的特殊用法,以 # 开头的表示所有字符。

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:重点日志报错信息为:'str' object has no attribute 'decode'。引用\[2\]:使用match方法时报错信息为:'NoneType' object has no attribute 'span'。引用\[3\]:Django runserver时报错信息为:'str' object has no attribute 'decode'。根据这些报错信息,可以得出结论是在字符串对象上调用了不存在的方法'replace'。 问题:'str' object has no attribute 'replce' 回答: 报错信息显示'str' object has no attribute 'decode',而不是'replace'。这意味着在字符串对象上调用了不存在的方法'decode'。可能的原因是在Python 3,字符串对象已经没有decode方法了。decode方法是在Python 2用于将字节串解码为Unicode字符串的方法。在Python 3,字符串对象已经是Unicode字符串,不需要再进行解码操作。因此,需要检查代码是否有对字符串对象调用decode方法的地方,并将其修改为适用于Python 3的方式。 #### 引用[.reference_title] - *1* *3* [[Django] query = query.decode(errors=‘replace‘) AttributeError: ‘str‘ object has no attribute ...](https://blog.csdn.net/qq_41604569/article/details/125031443)[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^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python字符串与正则表达式的25个常用操作](https://blog.csdn.net/qq_37555071/article/details/107715857)[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^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值