求一个正则表达式,获取tb里的值
源文件是:
<table border="0" cellpadding="0" cellspacing="0" class="add">
<tr>
<th width="20" class="nb">
职位
</th>
<th width="135">
姓名
</th>
<th width="80">
电话
</th>
<th width="40">
性别
</th>
<th width="160">
年龄
</th>
<th width="180">
邮箱
</th>
<th>
备注
</th>
<th width="16" class="no">
</th>
</tr>
<tr>
<td>
</td>
<td>
<a href="zhao.aspx">赵</a>
</td>
<td>
<span class="fcgray">111111</span>
</td>
<td>
<span class="sex0">男</span>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
<tr class="m">
<td>
</td>
<td>
<a href="niuniu.aspx">牛</a>
</td>
<td>
<span class="fcgray">2222222</span>
</td>
<td>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
<tr>
<td>
</td>
<td>
<a href="fei.aspx">飞</a>
</td>
<td>
<span class="fcgray">3333333</span>
</td>
<td>
<span class="sex0">男</span>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
<tr class="m">
<td>
<img src="manage.gif" align="absmiddle" />
</td>
<td>
<a href="qi.aspx">奇</a>
</td>
<td>
<span class="fcgray">4444444</span>
</td>
<td>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
<tr>
<td>
<img src="admin.gif" align="absmiddle" />
</td>
<td>
<a href="zhang.aspx">张</a>
</td>
<td>
<span class="fcgray">5555555</span>
</td>
<td>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
<tr class="m">
<td>
</td>
<td>
<a href="xie.aspx">解</a>
</td>
<td>
<span class="fcgray">6666666</span>
</td>
<td>
</td>
<td>
</td>
<td title="">
</td>
<td title="">
</td>
</tr>
</table>
想要的结果是:
空 赵 111111 男 空 空
空 牛 222222 空 空 空
空 飞 333333 男 空 空
manage 奇 444444 空 空 空
admin 张 555555 空 空 空
空 解 666666 空 空 空
求一正则解决,这个问题困扰我很久了, 一直在找例子看 自己改一直没有做到,请大家帮帮忙了, 谢谢各位了
[解决办法]
- C# code
void Main(){var html =File.ReadAllText("C:\\csdn.txt"); Regex reg=new Regex(@"(?is)<tr[^>]*?>(\s*<td[^>]*?>(.*?)</td>)+");Regex regImag=new Regex(@"(?i)<img\b[^>]*?src=(['""\s]?)([^'""\s]+)\.(?:gif|png|jpg)\1[^>]*?>"); foreach(Match m in reg.Matches(html)) { foreach(Capture c in m.Groups[2].Captures) { string v=c.Value.Trim(); string outV; if(regImag.IsMatch(v)) outV=regImag.Match(v).Groups[2].Value; else outV=string.IsNullOrEmpty(c.Value.Trim())?"空":Regex.Replace(c.Value.Trim(),"<[^>]*?>",""); Console.Write("{0} ",outV); } Console.WriteLine( ); } /* 空 赵 111111 男 空 空 空 空 牛 2222222 空 空 空 空 空 飞 3333333 男 空 空 空 manage 奇 4444444 空 空 空 空 admin 张 5555555 空 空 空 空 空 解 6666666 空 空 空 空 */}