zoukankan      html  css  js  c++  java
  • SQL Server中利用正则表达式替换字符串

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

    [sql] 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中执行

    [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. */    
  • 相关阅读:
    不舍
    java 笔记
    Javascript 行为委托
    JavaScript 函数调用的 this词法
    Javascript 闭包
    Javascript 原型链
    理解css的BFC
    多模态检索之CCA算法
    MySQL 基础概念、基础配置、密码破解
    Python的进程和线程
  • 原文地址:https://www.cnblogs.com/zhangwc/p/6497373.html
Copyright © 2011-2022 走看看