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

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

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

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

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

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

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

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 RegexReplace(SqlChars input, SqlString pattern, SqlString replace)

{

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

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

}

};

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

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

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

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

结果为:aaa

在SQL中用正则表达式替换html标签的更多相关文章

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

    本文转自:http://blog.csdn.net/dhttaso/article/details/6045380 由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都 ...

  2. 在SQL中用正则表达式替换html标签(2)

    由于数据库的一个表字段中多包含html标签,现在需要修改数据库的字段把html标签都替换掉.当然我可以通过写一个程序去修改,那毕竟有点麻烦.直接在查询分析器中执行,但是MS SQL Server并没有 ...

  3. 正则表达式 替换 <img > 标签

    /** * 正则表达式过滤<img > 标签 * @param str * @return */ public static String cutOutImgPrefix(String s ...

  4. js正则表达式替换HTML标签以及空格(&nbsp;)

    参考:范仁义 js代码: function filter(text) { var reg = /<[^<>]+>/g;//1.全局匹配g肯定忘记写,2.<>标签中不 ...

  5. 正则表达式替换img标签src值!!!

    方法一: 相关链接:http://bbs.csdn.net/topics/320185735 实例:此实例自己做的时候讲字符串加了alt进行了有关修改  不清楚看上面链接 string test = ...

  6. 用正则表达式替换html标签

    下面的代码用于修改html文本中的img标记,修改后的html适用于lazyload方式的图片加载: protected string LazyPicProcess(string content) { ...

  7. c#使用正则表达式替换html标签

    /// <summary> /// 去除HTML标记(用正则彻底去除HTML\CSS\script代码 ) /// </summary> /// <param name= ...

  8. JavaScript替换HTML标签

    JavaScript替换HTML标签 1.说明 获取HTML字符串(包含标签),通过正则表达式替换HTML标签,输出替换后的字符串 2.实现JavaScript代码 function deleteTa ...

  9. 正则表达式替换字符串中的html标签

    正则表达式替换字符串中的html标签 ··· var newStr = str.replace(/<[^>]+>/g, ''); ···

随机推荐

  1. poj 1330 LCA (倍增+离线Tarjan)

    /* 先来个倍增 */ #include<iostream> #include<cstring> #include<cstdio> #define maxn 100 ...

  2. Dhroid框架配置

    1.将dhroid文件夹作为一个Module导入,dhroid下载地址 2.在build.gradle中的dependencies节点中添加compile project(':dhroid') dep ...

  3. Ext.grid.Panel表格分页

    转载:http://www.cnblogs.com/libingql/archive/2012/04/22/2464994.html cshtml @{ Layout = null; } <!D ...

  4. MySQL 查询数据

    MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MyS ...

  5. Javascript闭包简单理解

    提到闭包,想必大家都早有耳闻,下面说下我的简单理解.平时写代码.第三方框架和组件都或多或少用到了闭包.所以,了解闭包是非常必要的.呵呵... 一.什么是闭包简而言之,就是能够读取其他函数内部变量的函数 ...

  6. 33.Spring整合Struts2.md

    [toc] 1.搭建环境 在idea下可以在创建module时候选择,注意WEB-INF下的classes和lib两个目录需要手动创建,并且对应的配置文件和依赖的lib需要手动拷贝到这两个文件夹下 2 ...

  7. iOS开发,新手入门指导

    在做了近两年wp,安卓开发之后,某一天突然决定投身iOS的开发之中. 因为一直用的mac,做wp开发的时候都用双系统,vs开久了,就会比较烫,这点让人不爽.后来更多地做安卓,直接mac下开发,很舒适的 ...

  8. 安装 php

    1.yum安装php yum install php 2.配置 apache 支持 php a.找到httpd.conf find / -name  httpd.conf b.编辑 httpd.con ...

  9. 如何完全禁用或卸载Windows 10中的OneDrive - 51CTO.COM

    OneDrive 是微软的个人云存储平台,提供了对个人用户的文件托管.存储和同步等服务,OneDrive 默认被内置在 Windows 10 操作系统当中,而且当用户使用 微软账户 登录时,OneDr ...

  10. ES5数组方法

    先标明参考出处: http://blog.csdn.net/codebistu/article/details/8049705 本来写过一篇有关数组新方法的(详见: [转]JavaScript函数和数 ...