汇智养生
您的当前位置:首页SQLServer中利用正则表达式替换字符串的方法

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

来源:汇智养生


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

--如果存在则删除原有函数 
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 
--2.将姓名倒过来 
SELECT dbo.RegexReplace('John Smith', '([a-z]+)\s([a-z]+)', '$2,$1',1) 
/* 
-------------------------------------- 
Smith,John 
*/ 
--------------------------------------------------

只有对写程序充满热情,才能写出好的程序!

以上所述是小编给大家介绍的SQL Server中利用正则表达式替换字符串的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言小编会及时回复大家的!

您可能感兴趣的文章:

  • mysql 正则表达式查询含有非数字和字符的记录
  • MySQL 字符串模式匹配 扩展正则表达式模式匹配
  • SqlServer类似正则表达式的字符处理问题
  • 汇智养生还为您提供以下相关内容希望对您有帮助:

    如何在SQL Server中使用正则表达式

    sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数。1、regexp_like:regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_op

    如何在sql语句中使用正则表达式

    SQL Server提供了四个正则表达式函数:regexp_like, regexp_replace, regexp_substr, regexp_instr。其中,regexp_like函数用于检查一个字符串是否与指定的正则表达式匹配。该函数的语法为:regexp_like(x,pattern[,match_option])。match_option参数可选,用于指定匹配选项,包括区分大小写、不区分大小...

    如何在SQL Server中使用正则表达式

    SQL中不能使用正则表达式,但是可以使用通配符来达到类似效果 1 % 包含零个或更多字符的任意字符串 示例:WHERE title LIKE '%computer% ' 将查找处于书名任意位置的包含单词 computer 的所有书名。2 _(下划线) 任何单个字符 示例:WHERE au_fname LIKE '_ean...

    ...正则表达式以及一些字符串函数来提取SQL Server中包含计量单位的数字...

    可以使用正则表达式以及一些字符串函数来提取SQL Server中包含计量单位的数字。以下是实现方法:1. 使用PATINDEX函数 功能:PATINDEX函数用于在字符串中搜索模式,并返回匹配项的起始位置。步骤:首先,定义一个模式来匹配包含数字的子字符串。例如,使用'%[09]%'来匹配任意位置的数字。2. 使用SUBSTRING函数...

    sql 条件为数字

    在SQL中,若条件要求字段为数字,可以使用ISNUMERIC函数、TRY_CONVERT或CAST/CONVERT函数以及正则表达式等方法。ISNUMERIC函数:适用场景:主要在SQL Server中使用。功能:检查一个表达式是否可以转换为一个数字。示例:SELECT column_name FROM table_name WHERE ISNUMERIC(column_name) = 1;注意事项:在其他...

    ...正则表达式以及一些字符串函数来提取SQL Server中包含计量单位的数字...

    通过正则表达式与字符串函数提取SQL Server中包含计量单位的数字,以下是一个示例。假设有一个包含数字和计量单位的字符串列`string_col`,例如"20米"、"10cm"、"5.5km"等,我们可以使用以下查询语句进行提取:首先,利用`PATINDEX()`函数找到包含数字的子字符串的起始位置,然后使用`SUBSTRING()`函数...

    sql 判断字符串是否非数字

    一、使用正则表达式 在支持正则表达式的数据库系统中(如PostgreSQL),可以使用正则表达式来判断字符串是否只包含数字。例如,使用~运算符配合正则表达式'^d+$'来判断字符串是否为数字。如果不匹配该正则表达式,则该字符串为非数字。二、使用CAST或TRY_CAST函数 在某些数据库系统中(如SQL Server),可以...

    从小数点开始提取字符的函数sql

    一、使用用户定义函数(UDF)在SQL Server等数据库系统中,可以通过创建用户定义函数来遍历字符串,并从小数点开始提取字符。这种方法需要编写T-SQL代码,定义函数的输入参数、逻辑处理和返回值。通过调用这个函数,可以实现对指定字符串中小数点及其后面字符的提取。二、使用正则表达式函数 在支持正则表达式的...

    access 批量模糊替换 sql 问题(搜索好久未解决)

    使用正则表达式替换,如果的数据库比较大,将IIS的连接超时设置长一点 < Dim Db,conn,Rs1,Rs2,Str1,Str2,I,Re str1="\]*\>" '要替换的字符串,支持正则 str2="" '替换为的字符串 Db="db.mdb" '这是你的数据库地址 table="Article" '这是要替换的数据库的表名称 ziduan="Content" '...

    sql逗号隔开的字段怎么拆

    SQL中逗号隔开的字段可以通过多种方法进行拆分。对于SQL Server,具体方法包括:使用CHARINDEX和SUBSTRING函数结合递归公用表表达式(CTE):这种方法适用于所有版本的SQL Server。通过递归地查找逗号的位置,并使用SUBSTRING函数提取子字符串,可以实现字段的拆分。使用STRING_SPLIT函数(SQL Server 2016及更高版本...

    显示全文

    猜你还关注