mysql 替换html标签_[转]在SQL中用正则表达式替换html标签

由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都替换掉。当然我可以通过写一个程序去修改,那毕竟有点麻烦。直接在查询分析器中执行,但是MS SQL Server并没有提供正则表达式,替换html标签可不那么容易。我们可以通过CLR托管来实现一个通过正则表达式来替换html标签的自定义函数。(注:SQL CLR只能在MS SQL Server 2005或以上版本中适用)

第一步:通过Visual Studio 2008新建一个SQL Server项目

6188564_12910968831d6I.png

第二步:配置连接的数据库

点击上一步确定后,出现如下提示框

6188564_1291096915XGit.png

可以通过 添加新引用 来添加一个数据库连接(只适用MS SQL Server 2005或以上版本,再次提醒哦),添加以后选择其中一个数据库点击确定。

第三步:添加一个自定义函数

6188564_1291096915GQQj.png

然后编写自定义函数的类(需要注意的是类的方法必须是静态的)

usingSystem;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.Data.SqlTypes;

usingMicrosoft.SqlServer.Server;

usingSystem.Text.RegularExpressions;

publicpartialclassUserDefinedFunctions

{

publicstaticreadonlyRegexOptions Options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline;

[Microsoft.SqlServer.Server.SqlFunction]

publicstaticSqlString ReplaceHtml(SqlChars input, SqlString pattern,SqlString replace)

{

// 在此处放置代码

Regex regex = newRegex(pattern.Value, Options);

returnregex.Replace(newstring(input.Value),replace.Value);

}

};

using System;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

using Microsoft.SqlServer.Server;

using System.Text.RegularExpressions;

public partial class UserDefinedFunctions

{

public static readonly RegexOptions Options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline;

[Microsoft.SqlServer.Server.SqlFunction]

public static SqlString ReplaceHtml(SqlChars input, SqlString pattern,SqlString replace)

{

// 在此处放置代码

Regex regex = new Regex(pattern.Value, Options);

return regex.Replace(new string(input.Value),replace.Value);

}

};

第四步:部署,类编写完成后进行部署

6188564_1291096915dEbk.png

部署了以后,你指定的连接数据库下面会生成一个自定义函数和一个程序集(如图)

6188564_129109691535kM.png

然后就可以调用自定义函数了,不过调用自定义函数前,你还得启用一些配置

EXEC sp_configure 'allow updates',0 EXEC sp_configure 'show advanced options', 1 -- make them available reconfigure EXEC sp_configure 'clr enabled', 1 -- turn on OLE reconfigure

启用这些配置后,你就可以调用刚刚自定义的函数了.

调用

select dbo.ReplaceHtml('

aaa

',']*)>','')

结果为:aaa

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值