比如说,我现在要作一个搜索搜索的结果页面,要显示标题和一部分正文.标题不必说,但是正文中一般都有很多HTML代码,有没有什么比较好的方法过滤掉这些代码,(就是<>之间的内容),然后显示关键字附近的一段上下文呢?举个例子,数据库里有个字段的内容是:
请您对您的言行负责,<br>遵守中华人民共和国有关法律、<br>法规,尊重网上道德<img src="1.jpg>结帖方法
(关键字)<span>
:点击帖子右上的“管理”链接,进入管理页面,在要给分的回复后的文本框中填写分数,</span>
我搜索(关键字),然后希望得到关键字前后各10个字符,期望结果是:
法规,尊重网上道德结(关键字):点击帖子右上的“管有什么比较好的方法么?
谢谢各位先

解决方案 »

  1.   

    写一个替换函数,将可能的html标记都替换掉
    create function filter(@str varchar)
    returns varchar(8000)
    as 
    begin
    set @str=replace(@str,'<span>','')
    .....
    return @str
    end
    然后查询时调用
      

  2.   

    写个通用的替换函数.
    step 1: 找到第一个'<'的位置
    step 2: 找到与step1中'<'相配的'>'的位置
    step 3: 用stuff函数用''值取代"<XXXX>"
    step 4: 重复以上的步骤,即可杀掉全文的HTML代码
      

  3.   

    gsh945(太平洋底)的方法不行,因为html标签有很多种,而且有些标签内部属性也会变化的,所以单纯的替换是不行的
    要是MS SQL支持正则表达式就好了turenjie(拉倒)的方法我也想到了,但是还有个问题,就是"希望得到关键字前后各10个字符"...