读书人

怎么计算字符串中的匹配个数

发布时间: 2012-01-08 22:48:50 作者: rapoo

如何计算字符串中的匹配个数
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

读书人网 >Java Web开发

热点推荐