//separate the sourcecode into each entry
        static List<string> GetEachEntry(string sourceCode, string pattern)
        {
            List<string> eachEntryList = new List<string>();
            //Regex reEntry = new Regex(pattern, RegexOptions.IgnoreCase);
            //MatchCollection matches = reEntry.Matches(sourceCode);
            MatchCollection matches = Regex.Matches(sourceCode,pattern,RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture);
            foreach (Match m in matches)
                eachEntryList.Add(m.Groups["entry"].Value);            return eachEntryList;
        }  
        
        static void Main(string[] args)
        {            StreamReader sr1 = new StreamReader(@"百度新闻.txt", System.Text.UnicodeEncoding.GetEncoding("GB2312"));
            string Newscode = File.ReadAllText(@"百度新闻.txt", System.Text.UnicodeEncoding.GetEncoding("GB2312"));
            List<string> eachEntryList1 = new List<string>(GetEachEntry(Newscode, @"<td class==\x22text\x22>(?<entry>.*)</td></tr></table><br>"));
            Console.WriteLine(eachEntryList1.Count.ToString());
            console.Readkey();
      }
txt文档“百度新闻”的内容为:<table cellspacing=0 cellpadding=2>
<tr>
<td class="text"><a href="http://www.farmer.com.cn/wlb/nmrb/nb2/201008060013.htm "  mon="a=5&pn=4" target=_blank><span><b>小亭精神感召<font color="#C60A00">武大</font>学子</b></span></a> <font color=#6f6f6f> <nobr>农民日报 2010-8-6 09:06</nobr></font><br><font size=-1>...每个人都可以学习,只要你有这个心,去帮助别人。”  小亭精神感召着<font color="#C60A00">武大</font>学子,一批又一批志愿者将相继出发,奔赴全国各地开展志愿行动。7月29日,小亭生前的支教队队长苏鹏宇高举“武汉大学小亭爱心支教实践队”的旗帜,他说:“我们一定要把小亭精神传承下去。” </font>    </td></tr></table><br><table cellspacing=0 cellpadding=2>
<tr>
<td class="text"><a href="http://news.cnhubei.com/ctjb/ctjbsgk/ctjb15/201008/t1341398.shtml "  mon="a=5&pn=5" target=_blank><span><b><font color="#C60A00">武大</font>百余“赵小亭”昨日启程支教</b></span></a> <font color=#6f6f6f> <nobr>荆楚网 2010-8-5 07:21</nobr></font><br><font size=-1>记者赵飞报道:昨日是<font color="#C60A00">武大</font>爱心支教大学生赵小亭在支教中遇难的第15天,该校187名大学生接过赵小亭的接力棒,宣誓分赴湖北罗田、大悟、英山和四川北川爱心支教,时间最长的为一年。  这187名大学生由该校本科生和研究生组成,他们计划在支教期间,帮助北川中学新校区建设布置图书馆;...</font>    
<a href="/ns?word=%CE%E4%B4%F3+cont:964580092&cl=1&tn=news&rn=30 "><font color=#008000>4条相同新闻&gt;&gt;</a></font>
</td></tr></table><br>

解决方案 »

  1.   

    Regex reg = new Regex(@"(?is)<td\sclass=\x22text\x22[^>]*?>(.*?)</td>");
    MatchCollection mc = reg.Matches("");
    foreach (Match m in mc)
    {
        testbox1.Text += m.Groups[1].Value+ "\n";
    }
      

  2.   

    本帖最后由 lxcnn 于 2010-08-12 20:15:51 编辑
      

  3.   

    匹配模式
    (?i) 忽略大小写
    (?s) 单行模式,使小数点能够匹配任意字符你的正则有两个主要问题:
    1、class后多了一个“=”
    2、没有加(?s),小数点不能匹配换行符