SQL Server中利用正则表达式替换字符串的方法
建立正则替换函数,利用了OLE对象,以下是函数代码:
--如果存在则删除原有函数 IFOBJECT_ID(N'dbo.RegexReplace')ISNOTNULL DROPFUNCTIONdbo.RegexReplace GO --开始创建正则替换函数 CREATEFUNCTIONdbo.RegexReplace ( @stringVARCHAR(MAX),--被替换的字符串 @patternVARCHAR(255),--替换模板 @replacestrVARCHAR(255),--替换后的字符串 @IgnoreCaseINT=0--0区分大小写1不区分大小写 ) RETURNSVARCHAR(8000) AS BEGIN DECLARE@objRegexINT,@retstrVARCHAR(8000) --创建对象 EXECsp_OACreate'VBScript.RegExp',@objRegexOUT --设置属性 EXECsp_OASetProperty@objRegex,'Pattern',@pattern EXECsp_OASetProperty@objRegex,'IgnoreCase',@IgnoreCase EXECsp_OASetProperty@objRegex,'Global',1 --执行 EXECsp_OAMethod@objRegex,'Replace',@retstrOUT,@string,@replacestr --释放 EXECUTEsp_OADestroy@objRegex RETURN@retstr END GO --保证正常运行的话,需要将OleAutomationProcedures选项置为1 EXECsp_configure'showadvancedoptions',1 RECONFIGUREWITHOVERRIDE EXECsp_configure'OleAutomationProcedures',1 RECONFIGUREWITHOVERRIDE
--2.将姓名倒过来 SELECTdbo.RegexReplace('JohnSmith','([a-z]+)\s([a-z]+)','$2,$1',1) /* -------------------------------------- Smith,John */ --------------------------------------------------
只有对写程序充满热情,才能写出好的程序!
以上所述是小编给大家介绍的SQLServer中利用正则表达式替换字符串的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言小编会及时回复大家的!