Oracle:特殊字符过滤器,少数例外
Oracle: Special characters filter with few exceptions
我需要一些快速帮助。
我想过滤输入字符串并删除除 space( )、句点(.)、逗号(,)、连字符(-)、和号(&) 和撇号(') 之外的特殊字符。
我在下面使用,但它过滤掉了除句点 (.) 和逗号 (,) 之外的所有内容。
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
[^&0-9A-Za-z,.'' -]+
模式将匹配除 &
、ASCII 字母、数字、逗号、点、单撇号、space 和连字符之外的任何字符的一次或多次出现。
要支持任何白色space,请将文字 space 替换为 [:space:]
:
'[^&0-9A-Za-z,.''[:space:]-]+'
我需要一些快速帮助。
我想过滤输入字符串并删除除 space( )、句点(.)、逗号(,)、连字符(-)、和号(&) 和撇号(') 之外的特殊字符。
我在下面使用,但它过滤掉了除句点 (.) 和逗号 (,) 之外的所有内容。
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
[^&0-9A-Za-z,.'' -]+
模式将匹配除 &
、ASCII 字母、数字、逗号、点、单撇号、space 和连字符之外的任何字符的一次或多次出现。
要支持任何白色space,请将文字 space 替换为 [:space:]
:
'[^&0-9A-Za-z,.''[:space:]-]+'