gpt4 book ai didi

sql - 从 Oracle 字符串中删除特殊字符

转载 作者:行者123 更新时间:2023-12-04 20:06:26 27 4
gpt4 key购买 nike

在 Oracle 11g 数据库中,使用 SQL,我需要从字符串中删除以下特殊字符序列,即

~!@#$%^&*()_+=\{}[]:”;’<,>./?

如果字符串中存在任何这些字符,除了这两个字符,我不想删除它们,即: "|""-"那么我希望它们完全删除。

例如:

发件人: 'ABC(D E+FGH?/IJK LMN~OP'至: 'ABCD EFGHIJK LMNOP'去除特殊字符后。

我已经尝试过这个适用于这个样本的小测试,即:
select regexp_replace('abc+de)fg','\+|\)') from dual

但是有没有更好的方法来使用我上面的特殊字符序列而不使用 '\+|\)' 的字符串模式?对于每个使用 Oracle SQL 的特殊字符?

最佳答案

您可以用空字符串替换字母和空格以外的任何内容

[^a-zA-Z ]

这是 online demo

根据下面的评论

I still need to keep the following two special characters within my string, i.e. "|" and "-".



只是排除更多
[^a-zA-Z|-]

注:连字符 -应该在开始或结束或转义像 \-因为在 Character 类中定义范围有特殊意义。

欲了解更多信息,请阅读 Character Classes or Character Sets

关于sql - 从 Oracle 字符串中删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com