SQL Server中利用正则表达式替换字符串
来源:互联网 发布:淘宝网店培训学校 编辑:程序博客网 时间:2024/06/06 17:28
建立正则替换函数,利用了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
- */
0 0
- SQL Server中利用正则表达式替换字符串
- SQL Server中利用正则表达式替换字符串
- SQL Server中利用正则表达式替换日期中的"-|:| "字符串为空
- 【转】在EditPlus中利用正则表达式替换字符串
- Vim利用正则表达式替换匹配字符串
- Java中利用正则表达式将字符串中斜杠替换成双斜杠
- MySql 中sql替换字符、正则表达式
- 正则表达式替换字符串
- SQL SERVER 正则替换
- js 利用正则表达式替换字符串中指定字符
- SQL SERVER 2008R2 CLR 正则表达式替换
- SQL server替换字符串
- java中正则表达式替换字符串中的中括号
- SQL Server 2000 中使用正则表达式
- SQL Server 2000 中使用正则表达式
- SQL Server 2000 中使用正则表达式
- SQL Server 2000 中使用正则表达式
- SQL Server 2000 中使用正则表达式
- 谱聚类算法(Spectral Clustering)优化与扩展
- 修复一个闭包的缺陷
- Codeforces Round #382 (Div. 2)D
- 从拉普拉斯矩阵说到谱聚类
- 5.1 linux namespace 和cgroup lxc
- SQL Server中利用正则表达式替换字符串
- sudo 出现unable to resolve host 解决方法
- ArcEngine-投影变换
- Servlet线程安全问题
- 【Android - 进阶】之图片压缩
- PTA-数据结构 5-45 航空公司VIP客户查询 (25分)
- HTML5学习之一HTML5简介
- 魔术师发牌问题
- 整理一下前后台传值ajax