例句:

现在在这个句子有含有没有用处的span标签,我们需要使用sql语句替换掉这些标签,最后达到这样的效果:

首先需要做如下操作,使SQL支持正则表达式.

1.下载支持所需的文件 sql_xp_regular.7z

2.复制 xp_pcre.dllProgram FilesMicrosoft SQL ServerMSSQLbinn 目录下;

3.运行安装脚本 INSTALL.SQL;

4.然后就可以使用啦,主要有若干function及以下6个SP:

  • xp_pcre_match
  • xp_pcre_match_count
  • xp_pcre_replace
  • xp_pcre_format
  • xp_pcre_split
  • xp_pcre_show_cache

我们使用function 这样进行替换:

master.dbo.fn_pcre_replace(input,pattern,extra)

input 是需要被替换的原文, pattern 是要匹配的正则表达式, extra 是要替换成的字符串.

对于要匹配的正则表达式,有一个很好网址可以检验所写的正则对不对,这个网址还是一个自称电脑的菜鸟的老师教给我的,嘿嘿,确实真的很好用,

这个网页也算我每天必开的网页之一了. http://rubular.com/

当写好所需要的正则表达式之后,替换掉pattern参数,记得要用单引号’括起来.

第一个参数就是原文,直接放进去就好,第三个参数是要替换成的字符,如果要替换成固定字符,直接写出来就行了,如果是向我们这个例子中这样,需要保留“农产品”这三个字,那么在正则中把匹配这三个字的正则表达式用小括号括起来,然后在extra参数中,用$1去调用,如果有多个参数,则分别为$1,$2等……

最后,我们的SQL语句就是这样:

update articleinfo set articlecontent = master.dbo.fn_pcre_replace(convert(varchar(8000),articlecontent), '<span S*>(S*)</span>', '$1')

因为articlecontent字段是ntext类型,所以需要先转换成varchar类型再进行正则匹配。