try something like this (you need j2sdk1.4.0 or above):import java.util.regex.*;
import java.util.*;class TestReg
{
  public static void main (String[] args)
  {
String str="dfdf<tr>hkhk</tr>kkjhdijhfi<td>ddd</td>ddd<tr>dfdf</tr>dd<tr>jjj</tr>gg<td>cc</td>bb<tr>dffdf</tr>fdfdf";
Pattern p = Pattern.compile("<tr>([^<]+)</tr>");
Matcher m = p.matcher(str);
ArrayList a = new ArrayList();
while (m.find())
{
a.add(m.group(1));

}
String[] s = new String[a.size()];
a.toArray(s);
for (int i=0; i < s.length; i++)
System.out.println(s[i]);  }
}

解决方案 »

  1.   

    我认为不可能直接提取出来:你有没有考虑过,<tr></tr>之间还可能存在table?
    如:
    <tr>  <table><tr><td>xx</td></tr></table> </tr>
      

  2.   

    如果有<table>该怎么处理呢?
      

  3.   

    Pattern p = Pattern.compile("<tr>([^<]+)</tr>+?");
    有<table>的情况也装到数组里面去
    那要看你的要求是怎么样的了
      

  4.   

    如果我要<tr></tr>中间的东西
    但是<tr></tr>中间的别的<>又不要该怎么做
    例如<tr><table>hi</table></tr>hello<tr>good</tr>
    还有就是象taolei(实在无聊) 提出的那样
      

  5.   

    try
    Pattern p = Pattern.compile("<tr>(.+?)</tr>");if you want something like taolei(实在无聊) 提出的那样, then it is very hard, since the content has <tr></tr> in it