1
public static void main(String[] args) {
    Pattern p = Pattern.compile("[A-Z]*");
    Matcher matcher = p.matcher("CSE");
    System.out.println(matcher.group());
}

上記のコードで java.lang.IllegalStateException が発生するのはなぜですか? 任意の数の大文字を一致させるにはどうすればよいですか?

4

2 に答える 2

3

Matcher.find()正規表現マッチング プロセスを開始するには、を呼び出す必要があります。

public static void main(String[] args)
{
    Pattern p = Pattern.compile("[A-Z]*");
    Matcher matcher = p.matcher("CSE");
    while (matcher.find()) {
        System.out.println(matcher.group());
    }
}
于 2012-09-16T05:23:32.607 に答える
1

に電話matcher.matches();する前に電話する必要がありますmatcher.group());

matcher.group()前の一致で識別された部分文字列を返します。

あなたのパターンは[A-Z]+ . これにより、大文字シーケンスのすべての一致が出力されます

public static void main(String[] args) {
    Pattern p = Pattern.compile("[A-Z]+");
    Matcher matcher = p.matcher("CSEsdsdWWERdfsdfSSEEfdD");

    while (matcher.find()) {
        System.out.println(matcher.group());
    }
}
于 2012-09-16T05:26:27.473 に答える