Вот тестовая программа, которая показывает регулярное выражение для использования:
public class Demo {
public static void main(String[] args) {
String re = "^.*\\.ext$";
String [] strings = new String[] {
"file.ext", ".ext",
"file.text", "file.ext2",
"ext"
};
for (String str : strings) {
System.out.println (str + " matches('" + re + "') is " +
(str.matches (re) ? "true" : "false"));
}
}
}
и вот вывод (слегка отредактированный для "beauty"):
file.ext matches('^.*\.ext$') is true
.ext matches('^.*\.ext$') is true
file.text matches('^.*\.ext$') is false
file.ext2 matches('^.*\.ext$') is false
ext matches('^.*\.ext$') is false
Но на самом деле вам это не нужно, простой
str.endsWith (".ext")
отлично подойдет и для этой конкретной работы.
Если вам нужно, чтобы сравнение было без учета регистра (.EXT, .eXt, ...) для Windows, вы можете использовать:
str.toLowerCase().endsWith(".ext")