<li><a href="http://news.sina.com.cn/c/2012-03-15/080824118515_4.shtml" target="_blank">重庆日报刊登温家宝就王立军问题答问</a></li>
<li><a href="http://news.sina.com.cn/c/2012-03-15/080824118515_2.shtml" target="_blank">重庆日报头版刊登温家宝答问</a></li>
<li><a href="http://news.sina.com.cn/c/2012-03-15/075924118497.shtml" target="_blank">卫生部副部长呼吁政府增加对公立医院财政投入</a></li>
<li><a href="http://news.sina.com.cn/c/2012-03-15/071124118406.shtml" target="_blank">调查显示北上广近四成居民看跌今年房价</a></li>
例如,以上是从网页中抓取的新闻信息。
现在我想实现,当标题超过15个字节时,多余的用...表示。不知道是否可以用正则实现,求高中帮忙解决。另,若该方法不行,在后台如何根据HTML标签对源码进行拆分呢?

解决方案 »

  1.   

    Regex.Match(html,@"<a href=""(?:.+?)"" target=""_black"">(.+?)</a>");
      

  2.   


    string html=@"<li><a href=""http://news.sina.com.cn/c/2012-03-15/080824118515_4.shtml"" target=""_blank"">重庆日报刊登温家宝就王立军问题答问</a></li>
    <li><a href=""http://news.sina.com.cn/c/2012-03-15/080824118515_2.shtml"" target=""_blank"">重庆日报头版刊登温家宝答问</a></li>
    <li><a href=""http://news.sina.com.cn/c/2012-03-15/075924118497.shtml"" target=""_blank"">卫生部副部长呼吁政府增加对公立医院财政投入</a></li>
    <li><a href=""http://news.sina.com.cn/c/2012-03-15/071124118406.shtml"" target=""_blank"">调查显示北上广近四成居民看跌今年房价</a></li>";

    html=Regex.Replace(html,@"(?i)(?<=<a[^>]*?>).*?(?=</a>)",m=>m.Value.Length>15?m.Value.Substring(0,15)+"...":m.Value);
    Console.WriteLine(html);
      

  3.   

    <li><a href="http://news.sina.com.cn/c/2012-03-15/080824118515_4.shtml" target="_blank">重庆日报刊登温家宝就王立军问题...</a></li>
    <li><a href="http://news.sina.com.cn/c/2012-03-15/080824118515_2.shtml" target="_blank">重庆日报头版刊登温家宝答问</a></li>
    <li><a href="http://news.sina.com.cn/c/2012-03-15/075924118497.shtml" target="_blank">卫生部副部长呼吁政府增加对公立...</a></li>
    <li><a href="http://news.sina.com.cn/c/2012-03-15/071124118406.shtml" target="_blank">调查显示北上广近四成居民看跌今...</a></li>
      

  4.   

    分两步走
    第一步找到所有标题存入数组或者list中
    <a href="http://news.sina.com.cn/c/[\s\S]*?.shtml" target="_blank">(.+)</a></li>
    第二步遍历处理标题超过的用...表示
    字符截断可参考:System.Text.Encoding.Default.GetString(s.Take(len).ToArray()).TrimEnd('?')