//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条相同新闻>></a></font>
</td></tr></table><br>
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条相同新闻>></a></font>
</td></tr></table><br>
MatchCollection mc = reg.Matches("");
foreach (Match m in mc)
{
testbox1.Text += m.Groups[1].Value+ "\n";
}
(?i) 忽略大小写
(?s) 单行模式,使小数点能够匹配任意字符你的正则有两个主要问题:
1、class后多了一个“=”
2、没有加(?s),小数点不能匹配换行符