Java RegEx Matcher.groupCount返回0
我知道有人问过这个问题,但我无法解决
对于带有正文(西班牙语)的书本对象:("quiero mas dinero"实际上更长一些)
我Matcher一直为以下原因返回0:
String s="mas"; // this is for testing, comes from a List<String> int hit=0;
Pattern p=Pattern.compile(s,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(mybooks.get(i).getBody());
m.find();
System.out.println(s+" "+m.groupCount()+" " +mybooks.get(i).getBody());
hit+=m.groupCount();
我一直"mas 0 quiero mas dinero"在控制台上。为什么哦为什么?
回答:
从Matcher.groupCount()的javadoc中:
返回此匹配器模式中的捕获组数。
零组按照惯例表示整个模式。它不包括在此计数中。
如果您检查返回值,m.find()则返回true,然后m.group()返回mas,因此匹配器会找到匹配项。
如果您要尝试计算sin中出现的次数mybooks.get(i).getBody(),则可以这样进行:
String s="mas"; // this is for testing, comes from a List<String>int hit=0;
Pattern p=Pattern.compile(s,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(mybooks.get(i).getBody());
while (m.find()) {
hit++;
}
以上是 Java RegEx Matcher.groupCount返回0 的全部内容, 来源链接: utcz.com/qa/399765.html
