SQL 2005中实现正则表达式

SQL 2005中实现正则表达式问题为了实现正则表达式,在网上都花了几天时间才找到相关的资料,然后又经过一天的测试,才真正能够使用,辛苦啊....

CREATE  FUNCTION  LoseHtml    /*  去掉html代码*/

   @source  varchar(5000),@Pattern  varchar(1000)   
 ) 
RETURNS  varchar(5000) 
AS 
 BEGIN 
   DECLARE  @hr  integer 
   DECLARE  @objRegExp  integer 
   DECLARE  @objMatches  integer 
   DECLARE  @objMatch  integer 
   DECLARE  @getvalue  varchar(5000) 
   EXEC  @hr  =  sp_OACreate  'VBScript.RegExp',@objRegExp  OUTPUT 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'A' 
           END 
   EXEC  @hr  =  sp_OASetProperty  @objRegExp,  'Pattern',@Pattern 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'B' 
           END 
   EXEC  @hr  =  sp_OASetProperty  @objRegExp,  'Global',true 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'C' 
           END 
   EXEC  @hr  =  sp_OASetProperty  @objRegExp,  'IgnoreCase',true 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'D' 
           END 
   EXEC  @hr  =  sp_OAMethod  @objRegExp,'Replace',@getvalue  OUTPUT,@source,'' 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'E' 
           END 
   EXEC  @hr  =  sp_OADestroy  @objRegExp 
           IF  @hr    <  >  0  BEGIN 
                       RETURN  'F' 
           END         
RETURN  @getvalue 
END 
用下面的查询看看结果: 
 
sp_configure  'show  advanced  options',  1; 
GO 
RECONFIGURE; 
GO 
sp_configure  'Ole  Automation  Procedures',  1; 
GO 
RECONFIGURE; 
GO 
Select  Replace(dbo.LoseHtml(content,'  <//*[^  <  >]*  >'),'  ',''),Content  from  FS_News
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值