正则表达式提取网页单元格数据
<HTML><HEAD><TITLE>CXOutputDetail.jsp</TITLE>
<TABLE class=TableMain id=mainTable cellSpacing=0 cellPadding=0
width="100%" align=center border=1>
<TBODY>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>人员编号</DIV></TD>
<TD class=TableDetail1 colSpan=4> T110006070354</TD>
<TD class=TableDetail1 vAlign=center align=middle width="19%"
rowSpan=8>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD><IMG id=ryxp
onclick="showphoto('110105000010091','9')"
src="CXOutputDetail_files/viewattch.jpg" width=130> </TD></TR>
<TR>
<TD align=middle><U onmouseover=changecouser(this)
onclick="showphoto('1101050000000010091')"><FONT color=blue
size=2>点击查看所有照片</FONT></U> </TD></TR></TBODY></TABLE></TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>姓名</DIV></TD>
<TD class=TableDetail1 width="26%"> 梁伟志</TD>
<TD class=TableDetail2 width="11%">
<DIV align=right>别名绰号</DIV></TD>
<TD class=TableDetail1 colSpan=2> </TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>性别</DIV></TD>
<TD class=TableDetail1 width="26%"> 男</TD>
<TD class=TableDetail2 width="11%">
<DIV align=right>出生日期</DIV></TD>
<TD class=TableDetail1 colSpan=2> 1965-03-17</TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>现住地址</DIV></TD>
<TD class=TableDetail1 width="26%"
colSpan=5> 广东广州市海珠区 永兴街58号之三201房</TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>籍贯</DIV></TD>
<TD class=TableDetail1 width="26%" colSpan=5> </TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>体貌特征</DIV></TD>
<TD class=TableDetail1 colSpan=5> </TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%" height=21>
<DIV align=right>特殊标记</DIV></TD>
<TD class=TableDetail1 colSpan=5> </TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>案件编号</DIV></TD>
<TD class=TableDetail1 colSpan=5> A1101054700002006020036</TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right>案件类别</DIV></TD>
<TD class=TableDetail1 width="26%" colSpan=5> 诈骗案</TD></TR>
<TR class="">
<TD class=TableDetail2 width="13%">
<DIV align=right> 简要案情及附加信息</DIV></TD>
<TD class=TableDetail1
colSpan=5> 2005年9月嫌疑人虚构可以购买广州市海珠区以后可以升值为由,诈骗事主梁铁航人民币740000元。</TD></TR>
<TD class=TableDetail1 colSpan=5> </TD></TR></TBODY></TABLE>
这是我要提取内容的部分网页,我现在是想得到第一个<Table>里的单元格数据,比如 姓名 梁伟志等,嵌套的那个Table另写表达式读出来, 请问这两个表达式该怎么写呢?请教
[解决办法]
不一定非的使用正则式不可。
你可以根据实际情况,使用string.index,当然,使用index的时候,你要把那些特征字段想好。
使用index更快,当然,分析起来是靠人的大脑了。
[解决办法]
要是我的话 我会用集合 把用到的添进去
集合的方法就很多了 想做什么都做了的!
我是小菜鸟! 说的不好清见谅, 希望能够帮到你!
[解决办法]
没看出来你的1楼跟顶楼贴的有什么联系,也没看明白你倒底要什么
把你的源字符串重新给一下,并给出你想要的结果
string test = ...........;Match m = Regex.Match(test, @"<img[^>]*?src=""(?<img>[^""]*)""[^>]*>(\s*<(?!img)[^>]*>\s*)+点击查看所有照片", RegexOptions.IgnoreCase);if (m.Success) MessageBox.Show(m.Groups["img"].Value);
[解决办法]
不是不能写,是不想写,本来就比较麻烦,让楼主给出想要的结果,楼主又不给说明白了,写了又得改。。。
全取出来了,后续怎么处理,楼主自己看着办吧
string html = .....;string src = html.Replace(" ", "");src = Regex.Replace(src, @"^[\s\S]*?<table[\s\S]*?(?=<table)", "", RegexOptions.IgnoreCase);Match m = Regex.Match(src, @"<table[^>]*>((?><table[^>]*>(?<o>)|</table>(?<-o>)|((?!</?table)[\s\S]))*)(?(o)(?!))</table>", RegexOptions.IgnoreCase);if (m.Success){ string[] result = Regex.Split(m.Value, @"(?:\s*<[^>]*>\s*)+"); foreach (string s in result) { richTextBox1.Text += s + "\n"; }}