因此,我想通过使用正则表达式计算字符串中括号(例如括号括起来)的数量。我在matcher类中找到了这个方法“groupCount”。所以我认为这可以帮助我。如何计算Java正则表达式中的字符串中的括号数
groupCount在JavaDoc中说:“任何小于或等于此方法返回的值的非负整数保证是此匹配器的有效组索引。”所以我想像
m.group(m.groupCount());
应该始终工作。错误的...
下面是一些测试代码我写道:
public class TestJavaBracketPattern {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\))").matcher(")");
System.out.println(m.group(m.groupCount()));
}
}
现在在这里,我希望以匹配正则表达式闭括号(称为\)),并得到一个单一的比赛。正则表达式是(\)) - 它应该匹配包含闭括号符号的组。但它只是抛出一些异常(java.lang.IllegalStateException:未找到匹配)。
接下来,我试图匹配在没有匹配:
public class TestJavaBracketPattern {
public static void main(String[] args) {
Matcher m = Pattern.compile("(\\))").matcher("(");
System.out.println(m.group(m.groupCount()));
}
}
我得到相同的异常。实际上,在这两种情况下,我发现groupCount方法返回1.
非常困惑。
文档是对这个很清楚。请参阅:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Matcher.html#groupCount() –