SQLServer正则表达式替换函数应用详解

这时我轻轻地闭上了眼睛,我好像来到童话世界,好像在和小鸟讨论秋天的美景,好像在和小草拍秋天的照片。农民伯伯在田野里收获了庄稼,果农们在果园里收获了果子,我们在学校里收获快乐、收获知识、收获成长。
--SQL正则替换函数
 
CREATE function dbo.regexReplace
(
@source ntext, --原字符串
@regexp varchar(1000), --正则表达式
@replace varchar(1000), --替换值
@globalReplace bit = 1, --是否是全局替换
@ignoreCase bit = 0 --是否忽略大小写
)
returnS varchar(1000) AS
begin
declare @hr integer
declare @objRegExp integer
declare @result varchar(5000)
exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
IF @hr <> 0 begin
exec @hr = sp_OADestroy @objRegExp
return null
end
exec @hr = sp_OADestroy @objRegExp
IF @hr <> 0 begin
return null
end
return @result
end

/*
配置对扩展存储过程的支持
Microsoft SQL Server 2005 -> 配置工具 -> 外围应用配置器 -> 功能的外围应用配置 -> Ole自动化:支持Ole自动化
使用举例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 表
*/

本文SQLServer正则表达式替换函数应用详解到此结束。太较真的人,常被感情所伤;太善良的人,常被他人所骗;太执着的人,常被现实所惑……于是,我们时常感觉疲惫,这不是身体的劳累,而是在精神的裂缝中迷漫的心灵苍老,让我们情无寄所,心无归依。世界就是这个样子,我们无须螳臂挡车,看开些,看淡些,情在心中,心在世外,一切就会简单得多。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
SqlServer类似正则表达式的字符处理问题

SQLServer中如何利用正则表达式替换字符串的方法

SqlServer生成连续数字根据指定的数字操作

SQLServer中JSON文档型数据的查询问题如何解决

SQLServer备份数据库的完整步骤