String str = "<b>两跳决定冠军</b>";
Pattern p = Pattern.compile("<(.*?)>", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(str);
if (m.find())
 System.out.println(m.groupCount());
如上述的代码,<(.*?)>匹配标签数,但是打印出来是1而不是2,怎么样可以计算出其中的标签数呢?匹配不对还是groupCount()有问题?

解决方案 »

  1.   

    String str = "<b>两跳决定冠军 <b><b><b><b><b></b></b></b> "; 
    Pattern p = Pattern.compile("<(.*?)>", Pattern.CASE_INSENSITIVE); 
    Matcher m = p.matcher(str); 
    int i=0;
    while (m.find()) ++i;
    System.out.println(i+"次");
      

  2.   

    groupCount()是说(正则表达式)有几个组
      

  3.   

    楼主你把groupCount的含义理解错误了,它并不是指在输入序列中Pattern总共匹配了多少次参见  http://hi.baidu.com/skychen1900/blog/item/ce8db5c26cd4a3180ef47782.html