转自:http://blog.csdn.net/binguo168/article/details/76598581

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数据库注册程序集

  1. CREATE ASSEMBLY AssemblyRegex from 'D:\MSSQLRegexExtend\MSSQLRegexExtend.dll'
  2. WITH PERMISSION_SET = SAFE

3.设置开启支持CLR  

  1. EXEC SP_CONFIGURE 'clr enabled', 1
  2. RECONFIGURE    <strong style="color: rgb(255, 0, 0);"> </strong>

4.创建支持正则匹配的标量函数 

  1. --DROP FUNCTION [dbo].[RegexMatch]
  2. CREATE FUNCTION [dbo].[RegexMatch](@Regex [nvarchar](max),@Input [nvarchar](max))
  3. RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
  4. AS
  5. EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[Match]

5.创建支持正则替换的标量函数 

  1. --DROP FUNCTION [dbo].[RegexReplace]
  2. CREATE FUNCTION [dbo].[RegexReplace](@Regex [nvarchar](max),@Input [nvarchar](max),@Replace [nvarchar](max))
  3. RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
  4. AS
  5. EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[Replace]

6.创建支持正则校验的标量函数

  1. --DROP FUNCTION [dbo].[RegexIsMatch]
  2. CREATE FUNCTION [dbo].[RegexIsMatch](@Regex [nvarchar](max),@Input [nvarchar](max))
  3. RETURNS [bit] WITH EXECUTE AS CALLER
  4. AS
  5. EXTERNAL NAME [AssemblyRegex].[MSSQLRegexExtend.RegexExtend].[IsMatch]

附部分简单正则:

  1. /*
  2. .  匹配除换行符以外的任意字符
  3. \w 匹配字母或数字或下划线或汉字
  4. \s 匹配任意的空白符
  5. \d 匹配数字
  6. \b 匹配单词的开始或结束
  7. ^  匹配字符串的开始
  8. $  匹配字符串的结束
  9. */
  10. /*
  11. *     重复零次或更多次
  12. +     重复一次或更多次
  13. ?     重复零次或一次
  14. {n}   重复n次
  15. {n,}  重复n次或更多次
  16. {n,m} 重复n到m次
  17. \W       匹配任意不是字母,数字,下划线,汉字的字符
  18. \S       匹配任意不是空白符的字符
  19. \D       匹配任意非数字的字符
  20. \B       匹配不是单词开头或结束的位置
  21. [^x]     匹配除了x以外的任意字符
  22. [^aeiou] 匹配除了aeiou这几个字母以外的任意字符
  23. IP地址匹配: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
  24. (\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。表达式顺序分析:
  25. \d{1,3}匹配1到3位的数字,
  26. (\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,
  27. 最后再加上一个一到三位的数字(\d{1,3})。
  28. */
 

SQL Server通过外部程序集注册正则表达式函数(CLR函数) [转]的更多相关文章

  1. Sql Server 添加外部程序集基本操作

    简介:有时候Sql Server的内置函数没有那么好用的时候,可以引用一下外部程序集,下面献下丑,做下添加外部程序集操作 1.准备程序,编译出一个MyCLR的DLL. public class CLR ...

  2. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

  3. SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数

    场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...

  4. SQL Server 2005 的动态管理视图DMV和函数DMF

    优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...

  5. SQL Server 调用 C# 方法实现正则表达式验证

    Ø  前言 1.   在 SQL Server 中默认是不支持正则表达式验证的,如果需要某个字符串匹配一个正则表达式的验证规则,就需要额外的编写 C# 方法,并发布到 SQL Server 数据库中. ...

  6. SQL Server中字符串转化为GUID的标量函数实现

        还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...

  7. SQL Server 2012 新特性:新增和修改函数

    转换函数      1.PARSE      Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别         SELECT PARSE ('2.111111' AS f ...

  8. Red Gate(SQLToolbelt)SQL Server的安装与注册(破解)

    Red Gate(SQLToolbelt)是SQL Server辅佐工具 1.SQL Compare 比较和同步SQL Server数据库结构 2.SQL Data Compare 比较和同步SQL ...

  9. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

随机推荐

  1. SPI 核软件调试记录

    SPI 核软件调试记录 1.首先说说int SpiFlashWaitForFlashReady(void)这一函数,基本上其它函数在执行的时候,都会事先执行一次此函数.    因为此函数的作用主要是用 ...

  2. influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控

    influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...

  3. tomcat源码 StandardServer

    在执行org.apache.catalina.startup.Catalina#load的时候会执行org.apache.catalina.core.StandardServer#init,然后会调到 ...

  4. NIO基本操作

    NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题 NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器) Channel(通道) ...

  5. 解决MSDE安装回滚的问题

    rem 解决MSDE安装回滚的问题.bat rem 设置为手动rem sc config "LanmanServer" start= DEMAND rem 设置为自动sc conf ...

  6. 【springBoot】之快速构建一个web项目

    基于maven,首先看pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifact ...

  7. java1.8新特性(四 创建 stream对象)

    java1.8 提供了 stream对象 可以用作 对 集合 数组的 一系列操作,都是基于lambda 表达式 ,所以得先熟悉lambda 表达式 集合创建stream对象 // 1.集合创建stre ...

  8. 客户端负载均衡Feign之四:Feign配置

    Ribbon配置 在Feign中配置Ribbon非常简单,直接在application.properties中配置即可,如: # 设置连接超时时间 ribbon.ConnectTimeout=500 ...

  9. [C#][Quartz]帮助类

    本文来自:http://www.cnblogs.com/pengze0902/p/6128558.html /// <summary> /// 任务处理帮助类 /// </summa ...

  10. Uc的个人中心很奇葩

    Uc的个人中心很奇葩,未登录前点击头像是图2选择性别,点击云同步才是图3登录,登录之后,想退出,要点击图1的头像进入图4编辑资料,然后右上角退出登录…摸索了好久,差点抓狂…把你们的产品经理叫出来一下… ...