首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-01-08 
如何计算字符串中的匹配个数String str b两跳决定冠军/bPattern p Pattern.compile((.*?),

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

热点排行