• 首页
  • 狐文
  • 狐图
  • About
狐窝
OvO
  1. 首页
  2. 未分类
  3. 正文

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

2017年08月06日 79点热度 0人点赞 0条评论

2013 from---http://blog.csdn.net/return_false/article/details/11984613

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

view plain copy

  1. --如果存在则删除原有函数
  2. IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL
  3. DROP FUNCTION dbo.RegexReplace
  4. GO
  5. --开始创建正则替换函数
  6. CREATE FUNCTION dbo.RegexReplace
  7. (
  8.     @string VARCHAR(MAX),   --被替换的字符串
  9.     @pattern VARCHAR(255),  --替换模板
  10.     @replacestr VARCHAR(255),   --替换后的字符串
  11.     @IgnoreCase INT = 0 --0区分大小写 1不区分大小写
  12. )
  13. RETURNS VARCHAR(8000)
  14. AS
  15. BEGIN
  16. DECLARE @objRegex INT, @retstr VARCHAR(8000)
  17. --创建对象
  18. EXEC sp_OACreate 'VBScript.RegExp', @objRegex OUT
  19. --设置属性
  20. EXEC sp_OASetProperty @objRegex, 'Pattern', @pattern
  21. EXEC sp_OASetProperty @objRegex, 'IgnoreCase', @IgnoreCase
  22. EXEC sp_OASetProperty @objRegex, 'Global', 1
  23. --执行
  24. EXEC sp_OAMethod @objRegex, 'Replace', @retstr OUT, @string, @replacestr
  25. --释放
  26. EXECUTE sp_OADestroy @objRegex
  27. RETURN @retstr
  28. END
  29. GO
  30. --保证正常运行的话,需要将Ole Automation Procedures选项置为1  
  31. EXEC sp_configure 'show advanced options', 1
  32. RECONFIGURE WITH OVERRIDE
  33. EXEC sp_configure 'Ole Automation Procedures', 1
  34. RECONFIGURE WITH OVERRIDE

复制以上代码,到SQL中执行然后测试,如下

view plain copy

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

 

 

 

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

view plain copy

  1. --如果存在则删除原有函数
  2. IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL
  3.     DROP FUNCTION dbo.RegexReplace
  4. GO
  5. --开始创建正则替换函数
  6.  CREATE FUNCTION dbo.RegexReplace
  7. (
  8.     @string VARCHAR(MAX),   --被替换的字符串
  9.     @pattern VARCHAR(255),  --替换模板
  10.     @replacestr VARCHAR(255),   --替换后的字符串
  11.     @IgnoreCase INT = 0 --0区分大小写 1不区分大小写
  12. )
  13. RETURNS VARCHAR(8000)
  14. AS
  15. BEGIN
  16.     DECLARE @objRegex INT, @retstr VARCHAR(8000)
  17.     --创建对象
  18.     EXEC sp_OACreate 'VBScript.RegExp', @objRegex OUT
  19.     --设置属性
  20.     EXEC sp_OASetProperty @objRegex, 'Pattern', @pattern
  21.     EXEC sp_OASetProperty @objRegex, 'IgnoreCase', @IgnoreCase
  22.     EXEC sp_OASetProperty @objRegex, 'Global', 1
  23.     --执行
  24.     EXEC sp_OAMethod @objRegex, 'Replace', @retstr OUT, @string, @replacestr
  25.     --释放
  26.     EXECUTE sp_OADestroy @objRegex
  27.     RETURN @retstr
  28. END
  29. GO
  30. --保证正常运行的话,需要将Ole Automation Procedures选项置为1  
  31. EXEC sp_configure 'show advanced options', 1
  32. RECONFIGURE WITH OVERRIDE
  33. EXEC sp_configure 'Ole Automation Procedures', 1
  34. RECONFIGURE WITH OVERRIDE

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

然后测试,如下

view plain copy

  1. --2.将姓名倒过来  
  2. SELECT dbo.RegexReplace('John Smith', '([a-z]+)\s([a-z]+)', '$2,$1',1)
  3. /*
  4. -------------------------------------- 
  5. Smith,John
  6. */
标签: 暂无
最后更新:2017年08月06日

OvO

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
钛备份或小米系统备份功能备份出来的APK无法正常还原 BBR安装启用 安装docker mitmproxy 调试方法 Android SDK 版本选择 Perdition Mail代理服务器配置 HAProxy SSL代理 Openssl 中间人SSL代理 Stunnel SSL to SSL代理 NGINX反代IMAP配置 各种设备User Agent Torrent下载工具推荐 用 rar2john+hashcat 破解 RAR 文件密码 2020最好的Linux发行版 关闭新版chrome工具栏上拼图图标 Office 下载、安装、激活,有它就够了! Android 非官方的发行版 openwrt添加autoconf-archive
设立Hyper-V和VMware多个服务之间共存 2020最好的Linux发行版 Debian sid基本配置(从stable/testing升级) git worktree 使用笔记 apt与apt-get的区别 Oracle:hint用来手工改变sql的执行计划 vmware的硬件选项里有关于虚拟化引擎的选项 浏览器about:相关链接 Oracle相关程序下载链接 Debian通过PPA源安装软件 极验验证:传统验证码破解算法浅析 MS扫盲贴:Windows 和 GPT 常见问题解答(uefi、GPT、ESP、MSR之类的概念) Tesseract-OCR 训练中文 离线导出Chrome浏览器中保存的密码 Oracle 客户端plsql developer和服务器编码不同的解决办法 〖最全〗pycharm+ipython notebook搭建(for mac) 如何在Linux中使用Google Drive,OneDrive,Dropbox,Amazon S3等云盘 使用CMD获取进程运行的命令行
标签聚合
blog 下载 安装 镜像 https yum e 网卡 linux ssl git chromium chrome 路由 密码 docker

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS