今天在开发中使用Java 的正则匹配,发现使用matcher.find()方法返回true,但是matcher,groupCount()返回的确实0。
String s1 = "jqk";
Pattern p = Pattern.compile("q");
Matcher m = p.matcher(s1);
System.out.println(matcher.find());
System.out.println(matcher.groupCount());
返回:
true
0
这是因为匹配的正则表达式没有加括号所导致的。
String s1 = "jqk";
Pattern p = Pattern.compile("(q)");
Matcher m = p.matcher(s1);
System.out.println(matcher.find());
System.out.println(matcher.groupCount());
返回:
true
1
只需要将代码改成如红字形式即可解决这个问题。