创建函数 CREATE FUNCTION dbo.find_regular_expression ( @source varchar(5000), --需要匹配的源字符串 @regexp varchar(1000), --正则表达式 @ignorecase bit = 0 --是否区分大小写,默认为false )RETURNS bit --返回结果0-false,1-trueAS BEGIN --0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。 DECLARE @hr integer --用于保存返回的对象令牌,以便之后对该对象进行操作 DECLARE @objRegExp integer DECLARE @objMatches integer--保存结果 DECLARE @results bit END 测试用例 DECLARE @intLength AS INTEGERDECLARE @vchRegularExpression AS VARCHAR(50)DECLARE @vchSourceString as VARCHAR(50)DECLARE @vchSourceString2 as VARCHAR(50)DECLARE @bitHasNoSpecialCharacters as BIT-- 初始化变量SET @vchSourceString = 'Test one This is a test!!'SET @vchSourceString2 = 'Test two This is a test'-- 我们的正则表达式应该类似于-- [a-zA-Z ]{}-- 如: [a-zA-Z ]{10} 一个十字符的字符串-- 获得字符串长度SET @intLength = LEN(@vchSourceString)-- 设置完整的正则表达式SET @vchRegularExpression = '[a-zA-Z ]{' + CAST(@intLength as varchar) + '}'-- 是否有任何特殊字符SET @bitHasNoSpecialCharacters = dbo.find_regular_expression(@vchSourceString, @vchRegularExpression,0)PRINT @vchSourceStringIF @bitHasNoSpecialCharacters = 1 BEGIN PRINT 'No special characters.'END ELSE BEGIN PRINT 'Special characters found.'ENDPRINT '**************'-- 获得字符串长度SET @intLength = LEN(@vchSourceString2)-- 设置完整的正则表达式SET @vchRegularExpression = '[a-zA-Z ]{' + CAST(@intLength as varchar) + '}'-- 是否有任何特殊字符SET @bitHasNoSpecialCharacters = dbo.find_regular_expression(@vchSourceString2, @vchRegularExpression,0)PRINT @vchSourceString2IF @bitHasNoSpecialCharacters = 1 BEGIN PRINT 'No special characters.'END ELSE BEGIN PRINT 'Special characters found.'ENDGO 相关文章: 2021-10-30 2021-09-22 2021-07-04 2022-02-09 2021-11-14 2021-12-11 2021-12-08