日期:2014-05-20 浏览次数:20911 次
public static void main(String[] args) { String str = "<TABLE><TR><TD>作者:张三 回复日期:2010-10-01 14:06:19</TD></TR></table>\n"; str += "<div>张三发表的内容一</div>\n"; str += "<TABLE><TR><TD>作者:李四 回复日期:2010-10-02 13:06:29</TD></TR></table>\n"; str += "<div>李四发表的内容.<br></div>\n"; str += "<TABLE><TR><TD>作者:张三 回复日期:2010-10-03 15:06:39</TD></TR></table>\n"; str += "<div>张三发表的内容二</div>\n"; str += "<TABLE><TR><TD>作者:张三 回复日期:2010-10-04 16:06:49</TD></TR></table>\n"; str += "<div>张三发表的内容三</div>\n"; str += "<TABLE><TR><TD>作者:王五 回复日期:2010-10-05 17:06:11</TD></TR></table>\n"; str += "<div>王五发表的内容</div>\n"; Matcher m = Pattern.compile("(回复日期:\\d{4}-\\d{2}-\\d{2}[ \\s*]\\d{2}:\\d{2}:\\d{2}).*?<div>(张三.*?)</div>",Pattern.DOTALL).matcher(str); while(m.find()){ System.out.println(m.group(2)+" "+m.group(1)); } }
------解决方案--------------------
try...
String pattern = "(?is)作者:张三\\s*((?:(?!</td>).)+)"; Matcher m = Pattern.compile(pattern).matcher(test); while(m.find()) { System.out.println(m.group(1)); }