`

SQL Server正则表达式替换函数

 
阅读更多
--如果存在则删除原有函数
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;

 

分享到:
评论

相关推荐

    用正则表达式提取SQL

    这类工具通常可以更准确地解析SQL语句,包括复杂的子查询、联接和窗口函数等,而不仅仅是基于正则表达式的简单匹配。它们通常提供API,允许开发者将SQL语句转换成易于处理的数据结构,以便进一步分析或执行。 总结...

    SQL Server正则表达式 替换函数应用详解

    –SQL正则替换函数 代码如下: CREATE function dbo.regexReplace ( @source ntext, –原字符串 @regexp varchar(1000), –正则表达式 @replace varchar(1000), –替换值 @globalReplace bit = 1, –是否是全局替换 @...

    SqlServer类似正则表达式的字符处理问题

    SQL Serve提供了简单的字符模糊匹配功能,比如:like, patindex,不过对于某些字符处理场景还显得并不足够,日常碰到的几个问题有: 1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个...

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

    上述内容中介绍了在不支持正则表达式的SQL Server版本中,如何建立一个自定义的正则替换函数dbo.RegexReplace。此函数通过调用OLE对象的sp_OACreate存储过程创建VBScript的RegExp对象,设置RegExp对象的属性,然后...

    正则表达式在SQL Server 2000中的实现与应用.pdf

    由于SQL Server 2000缺乏内置的正则表达式支持,开发者通常会创建自定义函数来实现更复杂的正则表达式功能。这可能涉及使用其他编程语言(如VBScript或Java)编写存储过程,然后在SQL中调用这些存储过程。 4. **...

    SQL 语法分析,正则表达式解析C#文件;正则表达式实现的语法分析引擎

    在SQL Server中,可以使用`LIKE`或`PATINDEX`函数进行简单的模式匹配,但正则表达式提供了更复杂的匹配规则,如贪婪与非贪婪匹配、分组、反向引用等。这使得在SQL查询中处理复杂的数据过滤和转换变得更加灵活。 接...

    正则表达式从入门到精通

    虽然标准SQL不直接支持正则表达式,但许多数据库系统如MySQL、PostgreSQL、Oracle和SQL Server提供了扩展函数来实现正则表达式的功能,如MySQL的`REGEXP`或SQL Server的`PATINDEX`。 在毕业设计中,正则表达式是一...

    sql server 提取汉字/数字/字母的方法 demo

    本文将介绍如何使用SQL Server编写函数来实现这些功能,并提供示例代码帮助理解。 #### 一、提取数字的方法 在SQL Server中提取字符串中的数字可以通过创建自定义函数实现。这里我们将通过一个具体的例子来展示这...

    SQL中使用正则替换的自定义函数

    在SQL Server中,我们通常需要借助外部库,如`fn_regexp_replace`这个自定义函数,它模拟了其他数据库系统(如PostgreSQL)中的正则表达式替换功能。在提供的压缩包中,"ReplaceHtml_RegExp.sql"可能就是这样一个...

    在sqlserver2008r2版本中实现正则表达式

    在SQL Server 2008 R2版本中,尽管它本身并不直接支持正则表达式(regex)功能,但可以通过一些扩展方法或者第三方工具来实现正则表达式的使用。正则表达式是一种强大的文本处理工具,能进行复杂的模式匹配和搜索...

    ASP_NET正则表达式

    - SQL Server 2008及以上版本引入了`LIKE`和`PATINDEX`函数的增强版——`SYSTEM_VERSIONING`,支持简单的正则表达式匹配。 - PostgreSQL、MySQL等数据库系统支持更强大的正则表达式操作。 - 在数据库设计和管理中...

    jsp+正则表达式实用总结

    4. **URL路由**:在自定义URL路由策略时,可以利用正则表达式匹配不同的URL模式,映射到相应的处理函数。 5. **安全防护**:防止SQL注入和跨站脚本攻击(XSS),通过正则表达式过滤掉潜在的恶意输入。 6. **日志...

    c#通讯录 主要用到了数据库和c#中的正则表达式

    2. **数据清理**:正则表达式还可以用于去除或替换字符串中的无效字符,确保数据的整洁性。 综上所述,"c#通讯录"项目结合了C#编程语言的特性,利用数据库技术存储联系人信息,同时采用正则表达式进行数据验证,...

    XMLDOM T-SQL XPath 正则表达式等CHM格式学习文档

    正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或提取符合特定规则的字符串。它们在编程、脚本语言中广泛使用,尤其在字符串处理和数据验证场景中。 这些CHM格式的学习文档涵盖了从...

    帮助文档集合(SQL.chm,XML 指南.chm,正则表达式系统教程.CHM)

    这是一个包含三个重要IT主题的压缩包文件集合:SQL.chm,XML指南.chm以及正则表达式系统教程.CHM。这些.chm文件是Windows的帮助文件格式,通常包含了丰富的技术信息和教程。 首先,我们来详细了解一下SQL...

    jstl文档和正则表达式文档

    正则表达式是一种强大的文本处理工具,常用于字符串匹配、查找、替换和分割等操作。在Java中,正则表达式主要通过`java.util.regex`包来实现。 1. **基础符号**:`.`表示任意字符,`^`表示行首,`$`表示行尾,`*`...

    精通Delphi文本处理:正则表达式的全面应用

    - `Create`:构造函数,用于创建正则表达式实例。 - `Match`:尝试匹配整个输入字符串。 - `Matches`:返回输入字符串中所有匹配的集合。 - `Replace`:替换输入字符串中所有匹配的部分。 - `Split`:根据正则表达式...

    Regular Expressions in MS SQL Server 20052008

    在SQL Server 2005和2008中,正则表达式(Regular Expressions)虽然不是内置功能,但可以通过使用外部函数或者特定的扩展存储过程来实现对字符串的复杂匹配和操作。正则表达式是一种强大的文本处理工具,能够帮助...

Global site tag (gtag.js) - Google Analytics