日期:2014-05-18  浏览次数:20421 次

如何用正则修改从网页中抓取的新闻标题?
HTML code
<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标签对源码进行拆分呢?

------解决方案--------------------
C# code

    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);