zoukankan      html  css  js  c++  java
  • sql server 实现正则表达式的使用

     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

    清除非数字字符

    SELECT dbo.RegexReplace('Joh44n  Shop/114Smd1ith', '[^0-9]', '',1) 

    感谢:https://www.jb51.net/article/107494.htm

  • 相关阅读:
    基础问题汇总
    c primer plus 习题答案(5)
    c primer plus 习题答案(4)
    c primer plus 习题答案(3)
    c primer plus 习题答案(2)
    c primer plus 习题答案(1)
    渲染引擎之材质系统
    渲染引擎之坐标变换
    渲染引擎之底层视角
    渲染引擎之渲染管线
  • 原文地址:https://www.cnblogs.com/PrintY/p/14520378.html
Copyright © 2011-2022 走看看