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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlserver 正则替换函数的一种实现相关的知识,希望对你有一定的参考价值。

--函数

IF
OBJECT_ID(Ndbo.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 正则替换函数的一种实现的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串替换

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

几条jQuery代码片段助力Web开发效率提升

php正则表达式

替换的片段仍然可见

sql server中对字段使用正则表达式替换???