@regexp varchar(1000),--正则表达式
@ignorecase bit = 0--是否区分大小写,默认为false
)
RETURNS bit --返回结果0-false,1-true
AS
BEGIN
--0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。
DECLARE @hr integer
--用于保存返回的对象令牌,以便之后对该对象进行操作
DECLARE @objRegExp integer DECLARE @objMatches integer
--保存结果
DECLARE @results bit
EXEC @hr = sp_OACreate 'VBScript.RegExp',@objRegExp OUTPUT
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
ENDEXEC @hr = sp_OASetProperty @objRegExp,'Pattern',@regexp
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
END
EXEC @hr = sp_OASetProperty @objRegExp,'Global',false
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
END
EXEC @hr = sp_OASetProperty @objRegExp,'IgnoreCase',@ignorecase
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
END
--调用对象方法EXEC @hr = sp_OAMethod @objRegExp,'Test',@results OUTPUT,@source
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
END--释放已创建的 OLE 对象
EXEC @hr = sp_OADestroy @objRegExp
IF @hr <>0 BEGIN
SET @results = 0
RETURN @results
END
RETURN @results
END