Oracle:特殊字符筛选,很少有例外



我需要一些快速帮助。

我想过滤输入字符串并删除除空格((、句点(.(、逗号(,(、连字符(-(、与号(&(和撇号('(之外的特殊字符。

我在下面使用,但它过滤掉了除句点(.(和逗号(,(之外的所有内容。

SELECT REGEXP_REPLACE('*Bruce*-*Martha*-&-*Thomas%* *Wyane''s* *Enterprises* ([#Pvt,Ltd.])', '[^0-9A-Za-z,.'' ]', '')  
FROM dual;

输入字符串:*Bruce*-*Martha*-&-*Thomas%* *Wyane's* *Enterprises* ([#Pvt,Ltd.])

我所期待的:Bruce-Martha-&-Thomas Wyane's Enterprises Pvt,Ltd.

我得到的:BruceMarthaThomas Wyane's Enterprises Pvt,Ltd.

谢谢。

您可以使用

SELECT REGEXP_REPLACE('*Bruce*-*Martha*-&-*Thomas%* *Wyane''s* *Enterprises* ([#Pvt,Ltd.])', '[^&0-9A-Za-z,.'' -]+', '') FROM dual

查看regex演示

[^&0-9A-Za-z,.'' -]+模式将匹配除&、ASCII字母、数字、逗号、点、单撇号、空格和连字符之外的任何字符的一个或多个出现。

要支持任何空白,请将文字空间替换为[:space:]:

'[^&0-9A-Za-z,.''[:space:]-]+'

相关内容

  • 没有找到相关文章

最新更新