MS SQL文本字段上的复杂Replace()

时间:2012-02-22 22:54:13

标签: html sql

我有一个MS SQL TEXT字段。

我有一个清理它的可怕任务..有很好的信息,并且在这个文本字段中有意识地存储了HTML,但是我需要一次从几千条记录的块中找到相当大的块。去掉它。我将不得不修改一些细微的变化..意思是链接和单词以及html将会改变。

我使用cf并且通常使用一些替换函数处理这些..但这些是大块。

我还注意到在测试中,当我使用LIKE '%%'

时,字符串中的某个位置找不到匹配项

我试图查明的示例代码就是这样的

 
<div><span style="font-family: Verdana; color: rgb(0, 0, 0); font-size: 12pt;"><span style="color: rgb(0, 0, 0);">View our HUGE selection of </span><a href="http://www.link.com/department-10532.cfm" title="widgets & more!"><span style="color: rgb(0, 0, 0);">Widgets </span></a> <span style="color: rgb(0, 0, 0);">here!</span></span></div><span style="font-family: Verdana; color: rgb(0, 0, 205); font-size: 12pt;">
  <h4> <hr style="color: rgb(128, 0, 0);" />
     </h4>
  <h4 align="center"><span style="font-family: Arial; color: rgb(128, 0, 0); font-size: 8pt;">Shop our site for quality gloves including widgets, more widgets and yet more widgets &amp; so much more!</span></h4>
  <h4 align="center"><span style="font-family: Arial; color: rgb(128, 0, 0); font-size: 8pt;">
      <h4 align="center"><span style="font-family: Verdana; color: rgb(0, 0, 205); font-size: 8pt;"><span style="font-family: Verdana; font-size: 8pt;">Order online or call our Solution Specialist Hotline at 1-800-999-9999</span></span></h4></span></h4><span style="font-family: Verdana; color: rgb(0, 0, 205); font-size: 8pt;"><span style="font-family: Arial; font-size: 8pt;">
      <h4 align="center"> <hr style="color: rgb(128, 0, 0);" />
         </h4><span style="font-family: Verdana; color: rgb(0, 0, 205); font-size: 12pt;"></span></span></span></span></span></div>

除了html可怕之外,我完全失去了。

执行命令只是为了找到像这样的代码

where vendorID = 240 and content LIKE '%<SPAN style="FONT-FAMILY:%'

显示结果。然而,如果我要在那条线上构建它在某一点上没有显示任何记录。

我确实在我认为有回归的地方尝试了+chr(13)+。 html是通过其中一个web html接口完成的,所以当它拉入这个文本字段时,它确实维护了下面的中断和格式。

关于我甚至认为半成功的唯一解决方案是手动检查符合此条件的字段,计算字符并切断字符串的右侧。问题是我必须为数十种变化做到这一点。

这是一个非常难以准确的问题,我已经考虑过了。唯一的共同点是:

  1. 这确实有一些一致的文字短语
  2. 它确实作为TEXT字段中的最后一个数据块出现。
  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这将有助于其他人。 首先 - 如果由您决定,请确保您将数据和内容分开。这不是我的意思。事后我正在帮忙。

经过多次尝试 - 阅读其他线程我使用了这个

    REReplaceNoCase(Content, "<HR.*?>(.*?)<HR.*?>", "", "all" )

在我的情况下,我试图在两个hr标签之间找到代码 - 即使它们有不同的样式=这找到了它。

我相信我也可以使用Replace(),并且不需要重新放置。

希望这可以节省其他人几个小时的冲浪时间。