比如 a=   <table> <tr> <td> 文章内容文章内容文章内容文章内容文章内容文章 <font   size=2> 内容文章内容 </font> 文章内容 </td> </tr> </table> 这样,变量里有一些html信息,,怎么取得这个a中的去掉前300和后300个字后的文字? 
并且还保留html内容.

解决方案 »

  1.   

    用正则匹配把非html元素的字前后分别去掉
    正则 偶不会写 请下面的给回答下哦
      

  2.   

    函数虽然简单,但是对处理HTML文档还是很有效的 
    <% 
    Function RemoveHTML(strHTML) 
    Dim objRegExp, Match, Matches 
    Set objRegExp = New Regexp objRegExp.IgnoreCase = True 
    objRegExp.Global = True 
    '取闭合的<> 
    objRegExp.Pattern = "<.+?>" 
    '进行匹配 
    Set Matches = objRegExp.Execute(strHTML) ' 遍历匹配集合,并替换掉匹配的项目 
    For Each Match in Matches 
    strHTML=Replace(strHTML,Match.Value,"") 
    Next 
    RemoveHTML=strHTML 
    Set objRegExp = Nothing 
    End Function %> 
    上面的将HTML内容的标签部分去掉 
    问题是去掉html标签后对文本进行处理后 怎么样按照原来的样式还原过去呢 暂时还没想好
      

  3.   


    private string MyReplace(string str,int len)
    {
    int length=len; bool flag=true; char[]arr=str.ToCharArray(); for(int i=0;(i<arr.Length&&length>0);i++)
    {
    if(Convert.ToString(arr[i]).Equals("<"))
    {
    flag=false;
    continue; }
    else if(Convert.ToString(arr[i]).Equals(">"))
    {
    flag=true;
    continue;
    }
    else
    { } if(flag)
    {
    length--;
    arr[i]='$';
    }
    }
    string returnString=new string(arr);
    returnString=returnString.Replace("$","");
    return returnString;
    }
      

  4.   

    上面函数 是我自己刚刚写的 经过测试的。
    功能: 去掉str从左边起长度为len的文字,保持原来的html元素不变。
    楼主参考一下。
      

  5.   


    string first="<table><tr><td>文章内容文章内容文章内容文章内容文章内容文章<font size=2>内容文章内容</font> 文章内容</td></tr></table> ";
    MessageBox.Show(MyReplace(first,22));我是winform下测试的。