したがって、正規表現を使用して文字列内のかっこ(カッコなど)の数を数えようとしています。私はこのメソッドを "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() –