首页 / 正则表达式 / ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式
最近做项目,有这样一需求:ORACLE数据库中求除数字、字母之外的非中文字符的正则表达式
如有如下字段,需将其中除字母、数字、汉字外的其他所有字符替换为空
"asdfsad ,,;)()!@123234#$%^&*(我w 是e ? 中国人。./[]::‘"“”一人"
最终得到值:asdfsad123234我是中国人一人
select FN_REG_REPLACEOTHER("asdfsad ,,;)()!@#$%^&*(我是?中国人。./[]::‘"“”一人","需要的正则表达式,"") from dual;
谢谢。以下答案就勿跟贴:
(s)|(,)|(,)|(.)|(。)|(:)|(:)|(;)|(;)|())|())|(()|())|(()|(‘)|(")|("")|(")|(“)|(”)|([)|(]|(!)|(!)|(@)|(#)|(\%)|(\%)|(^)|(&)|(*)|(¥)|($)|(/)|(\)|(?)|(?))
------解决方案--------------------
select regexp_replace("asdfsad ,,;)()!@123234#$%^&*(我w 是e ? 中国人。./[]::‘"“”一人"
,"[[:punct:]|[:blank:]|[:space:]|[:cntrl:]]","")
from dual
;
REGEXP_REPLACE("ASDFSAD,,;)
-----------------------------
asdfsad123234我w是e中国人一人
好了,本文的内容就到此为止了,希望对大家有用。