import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlTableDataRegex {
public static void main(String[] args) {
String input =
"<table width=\"530\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#D7D7D7\" class=\"pricetable1\">\r\n" +
"<tr>\n <td align=\"center\">2008-12-10 </td>\n <td align=\"center\">0.7416 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-09 </td>\n <td align=\"center\">0.7334 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-08 </td>\n <td align=\"center\">0.7430 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-05 </td>\n <td align=\"center\">0.7341 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-04 </td>\n <td align=\"center\">0.7289 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-03 </td>\n <td align=\"center\">0.7251 </td>\n </tr>\n" +
"<tr>\n <td align=\"center\">2008-12-02 </td>\n <td align=\"center\">0.7165 </td>\n </tr>\n" +
"\r\n\r\n\t\t" +
"</table>";
Pattern p = Pattern.compile("(?is)<tr[^<>]*>\\s*<td[^<>]*>(.*?)</td>\\s*<td[^<>]*>(.*?)</td>\\s*</tr>");
Matcher m = p.matcher(input);
while (m.find()) {
String part1 = m.group(1).trim();
String part2 = m.group(2).trim();
System.out.println(part1 + ", " + part2);
}
}
}
自己写了个
Pattern p=Pattern.compile("<td[^<>]*>(.*?)</td>");
Matcher m = p.matcher(input);
while (m.find()) {
String part1 = m.group(1).trim();
//String part2 = m.group(2).trim();
System.out.println(part1 + ", " );
}