0

I have

String b = "aasf/sdf/dfd/*";
Pattern.matches("[^ ]", b);

I keep getting returned false in Patter.matches();

Since it matches regex, all characters beside space character, shouldn't it return true?

4

4 に答える 4

1

Pattern.matchesパターンを正確に一致させようとします..

したがって、入力としてスペース以外の文字が1trueある場合にのみ返されます。

そのような使用\A[^ ]\z

どこ\Aで入力の始まりと入力の\z終わり..


スペースを含まない文字列をチェックしたい場合は、使用できます

input.matches("[^ ]*");
于 2013-09-21T16:23:48.460 に答える
1

いいえ、文字列全体を非スペース文字に一致させようとしています。

String b = "aasf/sdf/dfd/*";
Pattern.matches("[^ ]*", b);

これはtrueを返します

于 2013-09-21T16:24:32.603 に答える
0

Pattern.matches()true文字列全体が正規表現に一致する場合にのみ返します。あなたがしたいことは、パターンが のどこかに現れるかどうかを見ることですString。そのために使用する必要がありますMatcher.find()

例えば、

    String testStr = "aasf/sdf/dfd/*";
    Pattern patt = Pattern.compile("[^ ]");
    Matcher m = patt.matcher(testStr);
    while (m.find()) {
        System.out.println(m.group(0));
    }

これにより、すべての一致が出力されます。パターンが見つかったかどうかを知る必要がある場合m.find()は、 isかどうかを確認してくださいtrue

于 2013-09-21T16:23:53.100 に答える