有个html格式的源文件,已经读取到String中,如何用正则表达式取出下面这3行值天津 大区 街道 2013-5-26 23:59:24 2013-5-26 23:59:24 0.472 可通过天津 大区 街道 2013-5-26 23:44:24 2013-5-26 23:44:24 0.381 不可通过天津 大区 路 2013-5-26 0:13:28 2013-5-26 0:13:29 1.429 不可通过html源代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<style type="text/css">
 body{font-size:9pt;font-family:宋体}
 select{font-size:9pt;font-family:宋体}
 table{font-size:9pt;font-family:宋体}
</style>
</head><body topmargin=0 leftmargin=0>
<TABLE WIDTH="70%" border="0" align="center" >
<tr bgcolor="#ffffff">
<td height=20 align=left><a href="wxkh_Day_index.asp">返回</a></td>
</tr>
</TABLE>
<form action="ExportExcel_MX.asp?act=export&excel_Date=2013-5-26&selType=&business=&file=kyx&selprov=220" name="form1" method="post" style="width:100%; margin:0px;">
<TABLE style="WIDTH:70%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor=SteelBlue class="Navbar" ID="Table1">
<tr bgcolor="#eeeeee">
<td height=40 align=center colspan=7><font size=4><b>数据</b></font></td>
</tr>
<tr bgcolor="#eeeeee">
<td align="right" colspan=7 height=30>
省公司
<select id="selprov" name="selprov" onChange="Date_onChange(0)" disabled="disabled">
<OPTION value=571>天津</OPTION>
<OPTION value=230>北京</OPTION>
      </select>
 
  日期:
<SELECT id="sel_Date" name="sel_Date" language=javascript onChange="Date_onChange(3)">
<OPTION value=2013-5-29>2013-5-29</OPTION>
<OPTION value=2013-5-28>2013-5-28</OPTION>
</SELECT>
<input type="submit" name="btnExport" value="导出报表"  />&nbsp;&nbsp;   </td>
</tr>


<tr bgcolor="#eeeeff">
<td align="center" width="13%">地区</td>
<td align="center" width="13%">类别</td>
<td align="center" width="13%">小类</td>
<td align="center" width="13%">开始时间</td>
<td align="center" width="13%">结束时间</td>
<td align="center" width="13%">值</td>
<td align="center" width="13%">状态</td>
</tr>

<tr bgcolor="#ffffee" height=20>
<td align="center">天津</td>
<td align="center">大区</td>
<td align="center">街道</td>
<td align="center">2013-5-26 23:59:24</td>
<td align="center">2013-5-26 23:59:24</td>
<td align="center">0.472</td>
<td align="center">可通过</td>
</tr>

<tr bgcolor="#ffffee" height=20>
<td align="center">天津</td>
<td align="center">大区</td>
<td align="center">街道</td>
<td align="center">2013-5-26 23:44:24</td>
<td align="center">2013-5-26 23:44:24</td>
<td align="center">0.381</td>
<td align="center">不可通过</td>
</tr>

<tr bgcolor="#ffffee" height=20>
<td align="center">天津</td>
<td align="center">大区</td>
<td align="center">路</td>
<td align="center">2013-5-26 0:13:28</td>
<td align="center">2013-5-26 0:13:29</td>
<td align="center">1.429</td>
<td align="center">不可通过</td>
</tr>
</TABLE>
</form>
</body>
</html>

解决方案 »

  1.   

    你知道提取
    <td align="center">XXX</td>
    之间的XXX不就可以了么
      

  2.   

    td好办
    (?:\\s*<td.*?>(.*?)</td>\\s*)前面的那个tr咋办?(?s)<tr.*(?:\\s*<td.*?>(.*?)</td>\\s*)行吗?
      

  3.   

    你那不是固定的<td align="center">么,想复杂了。。
    String str = "<td align=\"center\">天津</td><br><td align=\"center\">大区</td>";
            Pattern p = Pattern.compile("<td align=\"center\">(.*?)</td>");
            Matcher m = p.matcher(str);
            ArrayList<String> strs = new ArrayList<String>();
            while (m.find()) {
                strs.add(m.group(1));            
            } 
            for (String s : strs){
                System.out.println(s);
            }        
      

  4.   

    可以把<TABLE></TABLE>提取出来保存到XML.java读取出来结果!