SQL Server中利用正则表达式替换字符串的方法

 更新时间:2017年03月05日 16:51:44   作者:小熊吉米  
这篇文章主要介绍了SQL Server中利用正则表达式替换字符串的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

建立正则替换函数,利用了OLE对象,以下是函数代码:

--如果存在则删除原有函数 
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 
--2.将姓名倒过来 
SELECT dbo.RegexReplace('John Smith', '([a-z]+)\s([a-z]+)', '$2,$1',1) 
/* 
-------------------------------------- 
Smith,John 
*/ 
--------------------------------------------------

只有对写程序充满热情,才能写出好的程序!

以上所述是小编给大家介绍的SQL Server中利用正则表达式替换字符串的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言小编会及时回复大家的!

相关文章

  • sql索引失效的情况以及超详细解决方法

    sql索引失效的情况以及超详细解决方法

    众所周知索引并不是时时都会生效的,下面这篇文章主要给大家介绍了关于sql索引失效的情况以及超详细解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 教你编写SQLMap的Tamper脚本过狗

    教你编写SQLMap的Tamper脚本过狗

    安全狗其实是比较好绕的WAF,绕过方法很多,但这里我们就用一种:注释混淆,这篇文章主要介绍了教你编写SQLMap的Tamper脚本过狗,需要的朋友可以参考下
    2023-02-02
  • 直接循环写入数据

    直接循环写入数据

    直接循环写入数据...
    2006-08-08
  • 合并SQL脚本文件的方法分享

    合并SQL脚本文件的方法分享

    在平时的工作中,我会经常的碰到这样需要合并SQL脚本的问题。如,有很多的SQL脚本文件,需要按照一定的先后顺序,再生成一个合并SQL脚本文件,然后再发布到用户SQL Server服务器上。
    2011-09-09
  • SQL SERVER 数据类型详解补充2

    SQL SERVER 数据类型详解补充2

    之前脚本之家发过数据类型方面的文章,但内容不是很充实,这里的一篇文章,正好弥补以前的一些,建议这两篇文章一起看效果更好。
    2010-04-04
  • 防止SQLSERVER的事件探查器跟踪软件

    防止SQLSERVER的事件探查器跟踪软件

    防止SQLSERVER的事件探查器跟踪软件方法,两种方法的原理相同,需要的朋友可以看下。
    2009-10-10
  • Sql server中内部函数fn_PhysLocFormatter存在解析错误详解

    Sql server中内部函数fn_PhysLocFormatter存在解析错误详解

    这篇文章主要给大家介绍了关于Sql server中内部函数fn_PhysLocFormatter存在解析错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-09-09
  • SQL Server存储过程入门学习

    SQL Server存储过程入门学习

    存储过程(Stored Procedure),是一组为了完成特定功能的SQL 语句,集经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数,如果该存储过程带有参数来执行
    2013-08-08
  • 数据库触发器DB2和SqlServer有哪些区别

    数据库触发器DB2和SqlServer有哪些区别

    大部分数据库语句的基本语法是相同的,但具体到的每一种数据库,又有些不一样,例如触发器,DB2和SQL Server两种很大的不同。对数据库触发器DB2和SqlServer有哪些区别感兴趣的朋友一起看看本文吧
    2015-11-11
  • SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)

    SQL窗口函数之聚合窗口函数的使用(count,max,min,sum)

    许多常见的聚合函数也可以作为窗口函数使用,包括AVG()、SUM()、COUNT()、MAX()以及MIN()等函数,本文就详细的介绍了SQL窗口函数之聚合窗口函数的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论