誰でもこのコードのエラーを見つけることができますか?
String value = "/files/etc/hosts/*";
if (value.matches("\\*$")) {
System.out.println("MATCHES!");
}
文字列の最後の文字がアスタリスクの場合、何らかの操作を実行しようとしています。
構文は正しいように見えます。http://regexpal.com/でテストしました
前もって感謝します!
誰でもこのコードのエラーを見つけることができますか?
String value = "/files/etc/hosts/*";
if (value.matches("\\*$")) {
System.out.println("MATCHES!");
}
文字列の最後の文字がアスタリスクの場合、何らかの操作を実行しようとしています。
構文は正しいように見えます。http://regexpal.com/でテストしました
前もって感謝します!
なぜ使用しないのですか:
if (value.endsWith("*")) {
String.matches() は、正規表現が CharSequence 全体と一致する場合にのみ true を返します。
次のいずれかを試してください。
value.matches(".*?\\*$")
または、Pattern オブジェクトを使用します。
編集:コメントリクエストごと。
Pattern glob = Pattern.compile("\\*$");
if (glob.matcher(value).find()) {
System.out.println("MATCHES!");
}
String
を使用する場合は、すべてを一致させる必要がありますString#matches
。
if (value.matches(".*\\*$")) {