需要一个正则表达式,能够正确获得下列字符串中每一对<td>...</td>之间的代码"<tr>
    <td ..........................\r\n"+
       " ...> data1</td>\r\n" +
    <td ..........................\r\n"+
       " ...> data2</td>\r\n" +
    <td ..........................\r\n"+
       " ...> data3</td>\r\n" +
    <td ..........................\r\n"+
       " ...> data4</td>\r\n" +
    <td ..........................\r\n"+
       " ...> data5</td>\r\n" +
    <td ..........................\r\n"+
       " ...> data6</td>\r\n" +
</tr>\r\n"
格式就是这样的,无法改变
需要读取每一个 <td>..</td>,包括数据和格式
求一个正则表达式
请各位大侠多多指教

解决方案 »

  1.   

    (?:<td>).*(?:</td>)不知这样行不。
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Main {
    public static void main(String[] args) {
    //需要一个正则表达式,能够正确获得下列字符串中每一对<td>...</td>之间的代码
    String str = "<tr>  " +
    "<td ..........................\r\n...> data1</td>\r\n" +
    "<td ..........................\r\n...> data2</td>\r\n" +
    "<td ..........................\r\n ...> data3</td>\r\n" +
    "<td ..........................\r\n...> data4</td>\r\n" +
    "<td ..........................\r\n...> data5</td>\r\n" +
    "<td ..........................\r\n...> data6</td>\r\n" +
    "</tr>\r\n";
    Pattern p = Pattern.compile("<td .*\\s*.*>(.*)</td>");
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }
    }
    }
      

  3.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Main {
        public static void main(String[] args) {
         String str = "<tr>  " +
            "<td ..........................\r\n...> data1</td>\r\n" +
            "<td ..........................\r\n...> data2</td>\r\n" +
            "<td ..........................\r\n ...> data3</td>\r\n" +
            "<td ..........................\r\n...> data4</td>\r\n" +
            "<td ..........................\r\n...> data5</td>\r\n" +
            "<td ..........................\r\n...> data6</td>\r\n" +
            "</tr>\r\n";
         Pattern p = Pattern.compile("(?<=>)(.*?)(?=</td>)");
         Matcher m = p.matcher(str);
         while(m.find()){
            System.out.println(m.group());
           }
        }
    }