如何计算字符串中的匹配个数
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()有问题?
------解决方案--------------------
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+"次");
------解决方案--------------------groupCount()是说(正则表达式)有几个组
------解决方案--------------------
楼主你把groupCount的含义理解错误了,它并不是指在输入序列中Pattern总共匹配了多少次
参见 http://hi.baidu.com/skychen1900/blog/item/ce8db5c26cd4a3180ef47782.html