首页新闻找找看学习计划

正则表达式为什么只能获取页面的一个内容

0
悬赏园豆:30 [已解决问题] 解决于 2012-12-08 11:56

  我以http://www.bxwx.org/bsort1/0/1.htm为例测试的,目的是获取这个页面所有的小说标题,但是以下面这段代码只能获取匹配到的第一个标题(也就是“特种教师”,下面是“百炼成仙”这个就取不到了),怎样才能取得他所有的标题呢,正则表达式是我自己写的,在正则测试工具上能够获取这个页面的所有标题,不过放到VS上就只能取第一个匹配的内容,请高手赐教。

  public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox2.Text = null;
            TextBox2.Text = GetPageCode(Textbox1.Text, ""); 
        }
        public String GetPageCode(String PageURL, String Charset)
        {
            //读取目标页面编码
         string webEncode = DropDownList1.SelectedItem.Text;
            //存放目标网页的html
             String strHtml = "";
         //连接到目标网页这里以http://www.bxwx.org/bsort1/0/1.htm为例测试的
        WebRequest wreq = WebRequest.Create(PageURL);

             HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();

            //采用流读取,并确定编码方式
            Stream s = wresp.GetResponseStream();
            
             StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding(webEncode));

         
           //正则表达式获取想要内容
            strHtml = Regex.Match(strHtml, "(?<=\\.htm\">)\\w+(?=</a></td>)", RegexOptions.ExplicitCapture).ToString();
           

            return strHtml;

        }

    }

 

 

小子不帅的主页 小子不帅 | 初学一级 | 园豆:2
提问于:2012-12-05 22:56
< >
分享
最佳答案
0
var mcs=Regex.Matches(..);
foreach(Match mc in mcs){
mc.Value
}
收获园豆:10
向往-SONG | 老鸟四级 |园豆:4853 | 2012-12-06 08:58
其他回答(1)
0

原理是分组一次性提取多个,而你用的Match方法是提取一个就结束了,所以要用到Regex.Matches方法来提取多个结果

收获园豆:20
az235 | 园豆:8263 (大侠五级) | 2012-12-06 09:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册