Вы должны написать:
Pattern.compile("\\*\\.\\*");
Поскольку *
имеет специальное значение (ноль или более) в регулярном выражении.Таким образом, вы должны экранировать его с помощью \\
.
Другим способом может быть:
Pattern.compile("[*][.][*]");
, потому что *
теряет свое другое значение, когда оно появляется между [
и ]
.
Если вы хотите проанализировать имя файла в формате *.*
, этого должно быть достаточно:
Pattern.compile(".+\\..+");
Чтобы соответствовать любому имени файла (которое может иметь или не иметь расширение), выможно использовать
Pattern.compile(".+(\\..+)?");