--如果存在则删除原有函数 
IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL  
    DROP FUNCTION dbo.RegexReplace 
GO 
--开始创建正则替换函数 
 CREATE FUNCTION dbo.RegexReplace 

    @string VARCHAR(MAX),   --被替换的字符串 
    @pattern VARCHAR(255),  --替换模板 
    @replacestr VARCHAR(255),   --替换后的字符串 
    @IgnoreCase INT = 0 --0区分大小写 1不区分大小写 

RETURNS VARCHAR(8000) 
AS  
BEGIN 
    DECLARE @objRegex INT, @retstr VARCHAR(8000) 
    --创建对象 
    EXEC sp_OACreate 'VBScript.RegExp', @objRegex OUT 
    --设置属性 
    EXEC sp_OASetProperty @objRegex, 'Pattern', @pattern 
    EXEC sp_OASetProperty @objRegex, 'IgnoreCase', @IgnoreCase 
    EXEC sp_OASetProperty @objRegex, 'Global', 1 
    --执行 
    EXEC sp_OAMethod @objRegex, 'Replace', @retstr OUT, @string, @replacestr 
    --释放 
    EXECUTE sp_OADestroy @objRegex 
    RETURN @retstr 
END 
GO 
--保证正常运行的话,需要将Ole Automation Procedures选项置为1   
EXEC sp_configure 'show advanced options', 1   
RECONFIGURE WITH OVERRIDE  
EXEC sp_configure 'Ole Automation Procedures', 1   
RECONFIGURE WITH OVERRIDE

复制以上代码,到SQL中执行

然后测试,如下

1 --2.将姓名倒过来
2 SELECT dbo.RegexReplace('John Smith', '([a-z]+)\s([a-z]+)', '$2,$1',1)
3 /*
4 --------------------------------------
5 Smith,John
6 */

在自己的项目中测试:查询结果去掉html标签

1 Select dbo.RegexReplace('<p><span style="font-size: 14px; line-height: 115%; font-family: 宋体;">(1)您手脚发凉吗?</span><br/></p>','\<[^<>]*\>','',1)

结果:

SQL Server中利用正则表达式替换字符串的更多相关文章

  1. JS 利用正则表达式替换字符串

    JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312, ...

  2. SQL Server中如何把 科学记数法字符串 变为 数字字符串

    当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如 ...

  3. Sql Server中Float格式转换字符串varchar方法(转)

    1.[Sql Server](70)  SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))SELECT STR(@testF ...

  4. SQL Server中执行正则表达式

    总体方案:写function,再执行update语句. 一.查询函数 -- ============================================= -- Author: <l ...

  5. SQL Server 2005,2008 正则表达式 替换函数应用详解

    CREATE function dbo.regexReplace ( @source ntext, --原字符串 ), --正则表达式 ), --替换值 , --是否是全局替换 --是否忽略大小写 ) ...

  6. SQL Server中使用正则表达式

    SQL Server 2005及以上版本支持用CLR语言(C# .NET.VB.NET)编写过程.触发器和函数,因此使得正则匹配,数据提取能够在SQL中灵活运用,大大提高了SQL处理字符串,文本等内容 ...

  7. 在sql server中利用with as实现递归功能

    在sqlserver2005之前,要实现递归功能比较麻烦,比如可能会要用到临时表与while语句来循环.自sqlserver2005之后,新增了with as功能语法,即 公用表达式(CTE),让递归 ...

  8. 在Sql Server 中使用正则表达式

    CREATE FUNCTION dbo.find_regular_expression ( ), --需要匹配的源字符串 ), --正则表达式 --是否区分大小写,默认为false ) RETURNS ...

  9. 在sql server中如何检测一个字符串中是否包含另一个字符串

    select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法: 一.CHARINDEX函数介绍 1.函数功 ...

随机推荐

  1. 【Linux】常见Linux默认的shell

    常见的操作系统下的shell: Linux下默认的shell是Bourne Again shell(bash) Solaris和FreeBSD下默认的是Bourne shell(sh) AIX系统下默 ...

  2. BackBone.js之Router

    一.前言 有一段时间没有写随笔了,可能是最近的烦心事有点多.不倾诉了,开始我们的主题吧,以前做过一个web的聊天平台,js的代码足足有2k行. 虽然是在一个星期就完成了,但是想想还是不服.一定有一种更 ...

  3. Mingw编译DLib

    Mingw编译DLib 因为机器上安装了qt-opensource-windows-x86-mingw530-5.8.0,所以准备使用其自带的mingw530来编译DLib使用. 因为DLib使用CM ...

  4. 2014年辛星Javascript解读第三节

    经过第一节的入门和第二节的运算符.那么接下来我们就能够学习Javascript的函数了,当然了.无论大家之前学习的是什么编程语言.都会有函数的概念,假设大家学的是Pascal,还会有"过程& ...

  5. Easyui入门视频教程 第09集---登录完善 图标自定义

    目录 ----------------------- Easyui入门视频教程 第09集---登录完善 图标自定义   Easyui入门视频教程 第08集---登录实现 ajax button的使用  ...

  6. Kubernetes 选择 IPVS

    什么是 IPVS ? IPVS (IP Virtual Server)是在 Netfilter 上层构建的,并作为 Linux 内核的一部分,实现传输层负载均衡. IPVS 集成在 LVS(Linux ...

  7. FireFox 浏览器插件/扩展开发学习

    2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"

  8. 【Android】Android连接SQLite3数据库的操作

    在前面使用SQLite3的时候,并没有留意到有SQLiteOpenHelper这个类,所以只好在Activity里面去创建和维护数据库跟数据表的创建. 但是,现在有了SQLiteOpenHelper这 ...

  9. 两段检验系统生成的identityHashCode是否重复的代码

    前言:承接上一篇hashCode和identityHashCode 的关系,下面的两段简单的程序主要是检验一下系统生成的identityHashCode是否存在重复的情况. 1:可以自由控制生成对象的 ...

  10. mysql慢查询日志相关参数

    -- mysql慢查询日志相关参数 -- 慢查询日志时间 show variables like "long_query_time"; -- 将时间设置为2s ; -- 是否开启慢 ...