我需要一些快速帮助。
我想过滤输入字符串并删除除空格((、句点(.(、逗号(,(、连字符(-(、与号(&(和撇号('(之外的特殊字符。
我在下面使用,但它过滤掉了除句点(.(和逗号(,(之外的所有内容。
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:]-]+'