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

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

2017年08月06日 208点热度 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

狐狸

点赞
< 上一篇
下一篇 >
最新 热点 随机
最新 热点 随机
brave编译打包时dump_syms报错Couldn't locate EXE or DLL file 使用Windows Kits创建PE 及精简镜像 Windows精简部署相关简易内容 APC UPS SUA1000ICH 踩坑记 TrueNAS SCALE虚拟机无法 Ping主机 TrueNas Scale libvirt-sock RDMA RoCE相关资料 Linux系统修改网卡名(eth0-3) Linux系统打开SRIOV 构建android内核时DTC工具中的多个定义错误 Windows 来宾系统提示“安全删除硬件” 修改jar的三种方法(反编译jar) 如何在 Debian 10上安装和配置 VNC Openwrt内SR-IOV网卡桥接问题 Linux下编译android 时报错loadlocale.c:130 windows 查看文件夹被那个进程占用 MongoDB中的多表关联 mongodb 学习记录
ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 安卓获取正在运行的包以及包路径 Windows下GitBook的安装详解 firefox 62 双击关闭标签页 Nginx配置子路径WordPress(文件目录与url不同) 使用Windows Kits创建PE 及精简镜像 通过Udev策略解决linux盘符漂移 Android 屏幕适配经验总结 windows和linux的远程桌面 Openssl 中间人SSL代理 Oracle:hint用来手工改变sql的执行计划 Linux下编译android 时报错loadlocale.c:130 Nginx下配置WordPress4伪静态规则及目录SEO(完美无错) 超微主板风扇频繁切换转速 目录级别的冗余存储:SnapRAID Win下最爱效率利器:AutoHotKey apt与apt-get的区别 chrome 扩展推荐
标签聚合
路由 文件 编译 http 网卡 下载 git e docker 密码 https ssl com chrome android linux

COPYRIGHT © 2020 狐窝. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS