码迷,mamicode.com
首页 > 数据库 > 详细

Sqlserver 正则替换函数的一种实现

时间:2016-09-27 11:41:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

--函数

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

 

用法示例(替换空格):

--替换空格
print dbo.RegexReplace(‘0   _ 276 _ 5‘, ‘\s+‘, ‘‘,1)

--输出:0_276_5

 

Sqlserver 正则替换函数的一种实现

标签:

原文地址:http://www.cnblogs.com/AnkerPeng/p/5912143.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!