欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server中利用正则表达式替换字符串的方法

程序员文章站 2022-03-09 23:47:27
建立正则替换函数,利用了ole对象,以下是函数代码: --如果存在则删除原有函数 if object_id(n'dbo.regexreplace') is n...

建立正则替换函数,利用了ole对象,以下是函数代码:

--如果存在则删除原有函数 
if object_id(n'dbo.regexreplace') is not null 
 drop function dbo.regexreplace 
go 
--开始创建正则替换函数 
 create function dbo.regexreplace 
( 
 @string varchar(max), --被替换的字符串 
 @pattern varchar(255), --替换模板 
 @replacestr varchar(255), --替换后的字符串 
 @ignorecase int = 0 --0区分大小写 1不区分大小写 
) 
returns varchar(8000) 
as 
begin 
 declare @objregex int, @retstr varchar(8000) 
 --创建对象 
 exec sp_oacreate 'vbscript.regexp', @objregex out 
 --设置属性 
 exec sp_oasetproperty @objregex, 'pattern', @pattern 
 exec sp_oasetproperty @objregex, 'ignorecase', @ignorecase 
 exec sp_oasetproperty @objregex, 'global', 1 
 --执行 
 exec sp_oamethod @objregex, 'replace', @retstr out, @string, @replacestr 
 --释放 
 execute sp_oadestroy @objregex 
 return @retstr 
end 
go 
--保证正常运行的话,需要将ole automation procedures选项置为1 
exec sp_configure 'show advanced options', 1 
reconfigure with override 
exec sp_configure 'ole automation procedures', 1 
reconfigure with override 
--2.将姓名倒过来 
select dbo.regexreplace('john smith', '([a-z]+)\s([a-z]+)', '$2,$1',1) 
/* 
-------------------------------------- 
smith,john 
*/ 
--------------------------------------------------

只有对写程序充满热情,才能写出好的程序!

以上所述是小编给大家介绍的sql server中利用正则表达式替换字符串的方法,希望对大家有所帮助