在SqlServer2005中使用正則表達式

先創建自定義函數
-----------------------------------------------
create   function   dbo.regexReplace  
  (  
  @source   varchar(5000),         --原字符串  
  @regexp   varchar(1000),         --正則表達式  
  @replace   varchar(1000),       --替換值  
  @globalReplace   bit   =   0,       --是否是全局替換  
  @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  
  GO  

-------------------------------------
配置對擴展存儲過程的支持
Microsoft SQL Server 2005 -> 配置工具 -> 外圍應用配置器 -> 功能的外圍應用配置 -> Ole自動化:支持Ole自動化

使用方法:
declare @source nvarchar(4000)
set @source = '<HTML>dsafsdf<HEAD>'
select dbo.regexReplace(@source, '/<[^/>]+/>', '', 1, 1)
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章