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