sql - 在 oracle 中使用 REGEXP_REPLACE 删除所有特殊字符
问题描述
我可以删除所有特殊字符,如下所示:
SELECT REGEXP_REPLACE('91D5 ZBA DISCONNECTION https://mail.com/owa/#path=/mailÂ]*Debit Bank Ctry next Business Day is 06-Jan-2020', '[^0-9A-Za-z]', ' ')
FROM dual;
输出 :
91D5 ZBA DISCONNECTION https mail tcs com owa path mail Debit Bank Ctry next Business Day is 06 Jan 2020
但是,如果我的描述中有任何单个反逗号,如下所示,如果失败,我如何使用 REGEXP_REPLACE 函数转义单个反逗号序列:
SELECT REGEXP_REPLACE('91D5 ZBA DISCONNECTION https://mail.com/owa/#path=/''mailÂ]'*Debit Bank Ctry next Business Day is 06-Jan-2020', '[^0-9A-Za-z]', ' ')
FROM dual;
解决方案
使用文本字面量,例如
SELECT REGEXP_REPLACE(q'#91D5 ZBA DISCONNECTION https://mail.com/owa/#path=/''mailÂ]'*Debit Bank Ctry next Business Day is 06-Jan-2020#', '[^0-9A-Za-z]', ' ')
FROM dual;
quote_delimiter是除空格、制表符和回车之外的任何单字节或多字节字符。quote_delimiter可以是单引号。但是,如果quote_delimiter出现在文本文字本身中,请确保它后面没有紧跟单引号。
如果开始的quote_delimiter是[、{、< 或() 之一,那么结束的quote_delimiter必须是对应的]、}、> 或)。在所有其他情况下,开始和结束quote_delimiter必须是相同的字符。
推荐阅读
- javascript - 在网站的不同 div 上滚动时使 Bootstrap4 导航栏改变颜色
- python - 按日期过滤日期时间索引
- python - 如何在 Python 和 C++ 之间持久化一个对象?
- python-3.x - 从用户输入中过滤一个数字并在程序中使用它
- reactjs - 请求参数更改时如何发送最后一个去抖动的请求?
- c# - 无法加载文件或程序集'Oracle.ManagedDataAccess,版本 = 2.0.19.1 (.Net 5)
- javascript - 从字符串化文件中读取节点 Orchestrator 对象并再次使用其功能
- javascript - 使用 composition-api 在 vuejs 中更新组件属性的问题
- php - Node.js AES-256-CBC 加密问题
- r - R中的rbind命令在一个相同的数据集中