2

私はそれが本当にダミーの質問であることを知っています。しかし、私はJavaで正規表現を使用するのは初めてです。私のコードはそのようなものです。

    Pattern p = Pattern.compile("[A-Z]+");
    Matcher m = p.matcher ("AsdGqw");
    if (m.find()) {
        System.out.println(m.group());
    }

大文字の文字が必要です(コードの「AG」); ただし、「A」のみが出力されます。デバッグすると、これも「A」であるマッチャーの lastmatch が表示されますが、その理由がわかりません。私の正規表現は、正規表現テスターで正常に動作します。

また、大文字を見つけるのにどちらが優れているのだろうか。正規表現またはループ?

ダミーの質問で申し訳ありません。

4

2 に答える 2

2

次のように変更を行う必要があります。

条件が最初のものだけを返す場合は、 while 条件を使用してそれらすべてを返す必要があります。

から

if (m.find()) {
            System.out.println(m.group());
        }

    while (m.find()) {
            System.out.println(m.group());
        }
于 2013-11-10T13:48:16.383 に答える