標籤:c# blog 網盤 create extern 簡單 conf .dll enable
1.下載dll程式集(通過C#編寫的支援正則的方法),百度網盤下載:
1.1如果只想用,可以直接下載MSSQLRegexExtend.dll
https://pan.baidu.com/s/1qX8eHa8
1.2正則程式集對應的解決方案MSSQLRegexExtend.sln,已打包
https://pan.baidu.com/s/1qXZja9m
2.SQL Server資料庫註冊程式集
CREATE ASSEMBLY AssemblyRegex from ‘D:\MSSQLRegexExtend\MSSQLRegexExtend.dll‘ WITH PERMISSION_SET = SAFE
3.設定開啟支援CLR
EXEC SP_CONFIGURE ‘clr enabled‘, 1 RECONFIGURE
4.建立支援正則匹配的純量涵式
--DROP FUNCTION [dbo].[RegexMatch] CREATE FUNCTION [dbo].[RegexMatch](@Regex [nvarchar](max),@Input [nvarchar](max)) RETURNS [nvarchar](max) WITH EXECUTE AS CALLER AS EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[Match]
5.建立支援正則替換的純量涵式
--DROP FUNCTION [dbo].[RegexReplace] CREATE FUNCTION [dbo].[RegexReplace](@Regex [nvarchar](max),@Input [nvarchar](max),@Replace [nvarchar](max)) RETURNS [nvarchar](max) WITH EXECUTE AS CALLER AS EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[Replace]
6.建立支援正則校正的純量涵式
--DROP FUNCTION [dbo].[RegexIsMatch] CREATE FUNCTION [dbo].[RegexIsMatch](@Regex [nvarchar](max),@Input [nvarchar](max)) RETURNS [bit] WITH EXECUTE AS CALLER AS EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[IsMatch]
附部分簡單正則:
/*. 匹配除分行符號以外的任一字元 \w 匹配字母或數字或底線或漢字 \s 匹配任意的空白符 \d 匹配數字 \b 匹配單詞的開始或結束 ^ 匹配字串的開始 $ 匹配字串的結束 *//** 重複零次或更多次 + 重複一次或更多次 ? 重複零次或一次 {n} 重複n次 {n,} 重複n次或更多次 {n,m} 重複n到m次 \W 匹配任意不是字母,數字,底線,漢字的字元 \S 匹配任意不是空白符的字元 \D 匹配任意非數位字元 \B 匹配不是單詞開頭或結束的位置 [^x] 匹配除了x以外的任一字元 [^aeiou] 匹配除了aeiou這幾個字母以外的任一字元 IP地址匹配: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)(\d{1,3}\.){3}\d{1,3}是一個簡單的IP地址匹配運算式。運算式順序分析: \d{1,3}匹配1到3位的數字,(\d{1,3}\.){3}匹配三位元字加上一個英文句號(這個整體也就是這個分組)重複3次,最後再加上一個一到三位的數字(\d{1,3})。*/
SQL Server通過外部程式集註冊Regex函數(CLR函數)