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?
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?
Pattern.matches
パターンを正確に一致させようとします..
したがって、入力としてスペース以外の文字が1つtrue
ある場合にのみ返されます。
そのような使用\A[^ ]\z
どこ\A
で入力の始まりと入力の\z
終わり..
スペースを含まない文字列をチェックしたい場合は、使用できます
input.matches("[^ ]*");
いいえ、文字列全体を非スペース文字に一致させようとしています。
String b = "aasf/sdf/dfd/*";
Pattern.matches("[^ ]*", b);
これはtrueを返します
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
。