[转]在SQL中之所以正则表达式替换html标签

正文转自:http://blog.csdn.net/dhttaso/article/details/6045380

出于数据库的一个字段被几近包含html标签,现在需改数据库的字段把html标签还替换掉。当然我好由此描写一个先后去窜,那到底有点累。直接在询问分析器中执,但是MS
SQL
Server并不曾提供正则表达式,替换html标签而免那么好。我们可以经过CLR托管来兑现一个经正则表达式来替换html标签的自定义函数。(注:SQL
CLR只能当MS SQL Server 2005要上述版本中适用)

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

 

图片 1

 

次步:配置连接的数据库

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

图片 2

 

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

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

图片 3

下一场编写自定义函数的好像(需要专注的凡相近的章程要是静态的)

[c-sharp] view
plaincopyprint?

  1. using System; 
  2. using System.Data; 
  3. using System.Data.SqlClient; 
  4. using System.Data.SqlTypes; 
  5. using Microsoft.SqlServer.Server; 
  6. using System.Text.RegularExpressions; 
  7. public partial class UserDefinedFunctions 
  8.     publicstaticreadonly
    RegexOptions Options = RegexOptions.IgnorePatternWhitespace |
    RegexOptions.Singleline; 
  9.     [Microsoft.SqlServer.Server.SqlFunction] 
  10.     publicstatic SqlString ReplaceHtml(SqlChars input,
    SqlString pattern,SqlString replace) 
  11.     { 
  12.         // 在此间放置代码 
  13.         Regex regex = new
    Regex(pattern.Value, Options); 
  14.         return regex.Replace(newstring(input.Value),replace.Value); 
  15.     } 
  16. }; 

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); } };

 

 

季步:部署,类编排得后进行部署

图片 4

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

图片 5

 

接下来就可以调用自定义函数了,不过调用自定义函数前,你还得启用一些安排

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(‘<p>aaa</p>’,'<(.[^>]*)>’,”)

结果为:aaa

相关文章