Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)归海一刀published in(发表于) 2014/2/1 0:22:09 正则表达式应用--利用正则替换字符_[SQL,Server教程]
/* 利用正则表达式替换字符
改编自国外一个站点的一篇文章,记不清了
--vivianfdlpw 2005.9(引用请保留此信息)
调用:
1.获取字符串中的英文字符 declare @str varchar(100) set @str='xyz123z5' select dbo.regexReplace(@str,'[^a-zA-Z]','',1,1)
2.获取字符串中的英文字符长度 declare @str varchar(100) set @str='xyz123z5' select len(dbo.regexReplace(@str,'[^a-zA-Z]','',1,1)) */create function dbo.regexReplace(@source varchar(5000), --原字符串@regexp varchar(1000), --正则表达式@replace varchar(1000), --替换值@globalReplace bit = 0, --是否是全局替换@ignoreCase bit = 0 --是否忽略大小写)returnS varchar(1000) ASbegindeclare @hr integerdeclare @objRegExp integerdeclare @result varchar(5000)
exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUTIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullendexec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexpIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullendexec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplaceIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullendexec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCaseIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullend exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replaceIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullendexec @hr = sp_OADestroy @objRegExpIF @hr <> 0 beginreturn nullend
return @resultendGO
赞