zoukankan      html  css  js  c++  java
  • SQL Server通过外部程序集注册正则表达式函数(CLR函数)

    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:MSSQLRegexExtendMSSQLRegexExtend.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 匹配数字 
     匹配单词的开始或结束 
    ^  匹配字符串的开始 
    $  匹配字符串的结束 
    
    */
    
    /*
    
    *     重复零次或更多次 
    +     重复一次或更多次 
    ?     重复零次或一次 
    {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]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)
    
    (d{1,3}.){3}d{1,3}是一个简单的IP地址匹配表达式。表达式顺序分析: 
     
    d{1,3}匹配1到3位的数字,
    
    (d{1,3}.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,
    
    最后再加上一个一到三位的数字(d{1,3})。
    
    */
    

      

      

     

     

      

  • 相关阅读:
    sqlserver2012附加数据库2005版本时出现的问题
    jQuery实现评论还剩多少个字
    在mvc3中经常使用身份验证实现
    Windows Phone学习(1):棋子未动,先观全局
    使用jquery.pagination.js实现无刷新分页
    Javascript和JQuery中常用的随机数产生函数(很好用)
    网页打印样式设置(页眉,页脚,页边距)
    rdlc到设置宽度后自动换行(转)
    VSS忘记Admin密码和修改默认登陆用户
    解决jquery 修改onclick事件后IE兼容模式下立刻执行的问题
  • 原文地址:https://www.cnblogs.com/binguo2008/p/7276913.html
Copyright © 2011-2022 走看看