由于数据库的一个表字段中多包含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

转载于:https://www.cnblogs.com/lgx5/p/5728562.html

在SQL中用正则表达式替换html标签相关推荐

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

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

  2. 在sql server中用正则表达式替换html标签,SQL Server中利用正则表达式替换字符串

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION ...

  3. java正则表达式 替换标签内容_使用Java正则表达式替换HTML标签

    一.实现目标 实现多个个HTML页的合并预览,需要如下处理 1)去掉meta标签 2)替换input标签,只保留value值(因为是预览,不保留输入框) 3)移除隐藏的input标签,即type=&q ...

  4. html 正则表达式替换标签,正则表达式替换 html 标签

    /** * 此方法描述的是:字符串的替换 * @param string需要替换的字符串 * @param oldString被替换的字符串 * @param newString新字符串 * @aut ...

  5. js正则替换html标签内容,JavaScript正则替换HTML标签功能的示例代码分享

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

  6. java 正则表达式 替换字符串img标签的路径_python面试题汇总第06期-正则表达式(内附7题及答案)...

    1.python正则表达式中匹配(match)和查找(search)的区别 答:正则表达式中match和search的方法比较相似 相同点:都是在一个字符串s中寻找pat子字符串,如果能找到,就返回一 ...

  7. 替换html标签内容正则表达式,正则表达式,替换所有HTML标签的简单实例

    我自己写了一个正则表达式, 这个是替换所以HTML标签,非贪婪的,多行的. 如果我想替换得到所以非HTML标签, 我的代码就只能是这样,先找打HTML标签,然后将标签替换掉. 能不能直接找到非HTML ...

  8. python读取html文件正则替换_Python使用正则表达式过滤或替换HTML标签的方法详解...

    本文实例讲述了Python使用正则表达式过滤或替换HTML标签的方法.分享给大家供大家参考,具体如下: python正则表达式关键内容: python正则表达式转义符: . 匹配除换行符以外的任意字符 ...

  9. java如何使用正则表达式替换所有前端标签

    Java使用正则表达式替换所有前端标签的方法如下: 首先,要使用正则表达式替换字符串,需要使用Java的java.util.regex包. 然后,需要创建一个Pattern对象,该对象表示要匹配的正则 ...

最新文章

  1. JQ属性和css部分测试
  2. 【文件处理】——Python pandas 写入数据到excel中
  3. 得到appd url_AppD方法:Java 9支持
  4. transferto的流这么关闭_Java 9中InputStream的transferTo()方法的重要性?
  5. 中国电信 商务领航送的cisco nav-10 wf配置端口转发
  6. 漯河首富,一年杀猪5000万头
  7. 【Redis】Redis 乐观锁
  8. jupyter报错Invalid credentials
  9. 蓝桥杯 BASIC-27 基础练习 2n皇后问题
  10. Eclipse Debug 配置
  11. 生成式对抗网络论文阅读整理
  12. spring中这些开发技巧真的太diao了
  13. 联想笔记本电脑键盘灯怎么开启_【普通背光键盘灯怎么开】联想键盘背光灯怎么开_背光键盘怎么开...
  14. 【Java】JavaSocket编程开发聊天室-服务器端部分
  15. C# 简单的ZEBRA标签打印程序
  16. Qt IFW 实现自动升级
  17. pdf转化为图片显示知多少
  18. 用夜神安卓模拟器做Android开发
  19. win8计算机可用内存不足,win8电脑运行提示物理内存不足的解决方法
  20. 解决虚拟机无法连接USB设备(U盘、网卡等等),网上各种方法均试过但无效

热门文章

  1. Java几款性能分析工具的对比
  2. ophonesdn对首位优秀版主mobileguy的专访
  3. Linux 多个发行版本被曝存在7年之久的提权漏洞
  4. 流拍后,Cerberus 银行木马源代码在黑市免费公开
  5. 速修复!严重的F5 BIG-IP 漏洞 PoC 已发布
  6. 惠普:某些 SSD 驱动的寿命只有32,768 小时(3年多),立即更新!
  7. Centos下pure-ftpd安装配置详解
  8. 十一:Cocos2d-x坐标系
  9. 上网行为审计产品对比(2008版)
  10. 路由技术 路由器安全性与可靠性的介绍