SQL Server通过外部程序集注册正则表达式函数(CLR函数) [转]
转自: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数据库注册程序集
- CREATE ASSEMBLY AssemblyRegex from 'D:\MSSQLRegexExtend\MSSQLRegexExtend.dll'
- WITH PERMISSION_SET = SAFE
3.设置开启支持CLR
- EXEC SP_CONFIGURE 'clr enabled', 1
- RECONFIGURE <strong style="color: rgb(255, 0, 0);"> </strong>
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通过外部程序集注册正则表达式函数(CLR函数) [转]的更多相关文章
- Sql Server 添加外部程序集基本操作
简介:有时候Sql Server的内置函数没有那么好用的时候,可以引用一下外部程序集,下面献下丑,做下添加外部程序集操作 1.准备程序,编译出一个MyCLR的DLL. public class CLR ...
- Sql Server 中一个非常强大的日期格式化函数
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...
- SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数
场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...
- SQL Server 2005 的动态管理视图DMV和函数DMF
优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...
- SQL Server 调用 C# 方法实现正则表达式验证
Ø 前言 1. 在 SQL Server 中默认是不支持正则表达式验证的,如果需要某个字符串匹配一个正则表达式的验证规则,就需要额外的编写 C# 方法,并发布到 SQL Server 数据库中. ...
- SQL Server中字符串转化为GUID的标量函数实现
还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...
- SQL Server 2012 新特性:新增和修改函数
转换函数 1.PARSE Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别 SELECT PARSE ('2.111111' AS f ...
- Red Gate(SQLToolbelt)SQL Server的安装与注册(破解)
Red Gate(SQLToolbelt)是SQL Server辅佐工具 1.SQL Compare 比较和同步SQL Server数据库结构 2.SQL Data Compare 比较和同步SQL ...
- SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)
在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名) 例如:select convert(int,'3')2. cast(字段名 as i ...
随机推荐
- 通过IOCTL_ATA_PASS_THROUGH访问ATA设备接口
控制代码功能:像ATA硬盘发送ATA指令.IDE/ATA:接口,一个串行,一个并行,一般叫做IDE接口的硬盘和ATA接口的硬盘.ATA指令:可以操作ATA硬盘的指令. typedef struct _ ...
- Centos升级Python 2.7并安装pip、ipython
https://www.cnblogs.com/technologylife/p/6242115.html
- js中return ,return true,return false;区别
js中return:.return true.return false;区别 转:https://www.cnblogs.com/camikehuihui/p/7999537.html 一.返回控制与 ...
- DS二叉树--层次遍历
题目描述 层次遍历二叉树,是从根结点开始遍历,按层次次序“自上而下,从左至右”访问树中的各结点. 建树方法采用“先序遍历+空树用0表示”的方法 要求:采用队列对象实现,函数框架如下: 输入 第一行输入 ...
- SpringBoot工程+热部署进行远程调试
本文转载自:https://blog.csdn.net/qq_31868349/article/details/78553901 SpringBoot工程+热部署进行远程调试 本地端添加配置 在pom ...
- Linux环境下配置maven环境
1.下载安装包并解压 安装包直接去apache官网下载:https://maven.apache.org/download.cgi 将安装包放在自己指定的目录:/home/software/apach ...
- 一个简单的springmvc例子 入门(1)
一直是从事棋牌游戏,平常用的东西 大多数只是使用一些javase的一些 api对spring 这方面 用到的比较少,每次学了都忘,始终记不住.为了 更轻松学习springboot,从新学习了sprin ...
- 学习笔记之MobaXterm
MobaXterm free Xserver and tabbed SSH client for Windows https://mobaxterm.mobatek.net/ Enhanced ter ...
- at android.view.LayoutInflater.createViewFromTag的错误原因
创建对话框时出现下面的错误: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean ...
- T-SQL 带参数存储过程
创建带参数的存储过程 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') dr ...