--SQL正则替换函数

来源:互联网 发布:淘宝店哪个店佛珠好 编辑:程序博客网 时间:2024/06/06 01:00
CREATE function dbo.regexReplace(@source ntext, --原字符串@regexp varchar(1000), --正则表达式@replace varchar(1000), --替换值@globalReplace bit = 1, --是否是全局替换@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 nullendexec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replaceIF @hr <> 0 beginexec @hr = sp_OADestroy @objRegExpreturn nullendexec @hr = sp_OADestroy @objRegExpIF @hr <> 0 beginreturn nullendreturn @resultend 

使用举例1:



declare @source nvarchar(4000)
set @source = 'dsafsdf'
select dbo.regexReplace(@source, '\<[^\>]+\>', '', 1, 1)

使用举例2: (将数据库字段中含有<font color='#ff0000'>aaa</font>替换为<font>aaa</font>)
Select id,dbo.regexReplace(字段,'<font([^>])*>','<font>',1,0) AS 别名 From 表



0 0
原创粉丝点击