Регулярное выражение: соответствует всему, кроме * .TMP - PullRequest
0 голосов
/ 11 августа 2010

У меня проблемы с созданием регулярного выражения, которое проверяет, есть ли у файла расширение .TMP, поэтому шаблон должен принимать любую строку, которая не равна (az 0-9 или точки события).* Чтобы быть ясным: совпадение должно быть успешным, только когда файл не имеет расширения TMP.

Я уже обнаружил, что мне нужно использовать (?! Выражение) для "не" ...

(?!.*TMP]) // is wrong ;-)

Ответы [ 3 ]

10 голосов
/ 11 августа 2010
if (!filename.endsWith(".TMP")) {
     /* then we found a match without using regExp */
}
5 голосов
/ 11 августа 2010
"(?<!\\.TMP)\\Z"

Чтение: что-то отличное от ".TMP", за которым следует конец строки.

2 голосов
/ 11 августа 2010

Это не ответ на ваш вопрос, но я думаю, вам стоит взглянуть на Apache Common IO, в котором есть несколько простых методов, которые могут сделать все, что вы обычно делаете.В том числе поиск расширений.Тогда вы просто делаете утверждение if вместо reg.exp.

http://commons.apache.org/io/

и посмотрите конкретный документ Java для getExtension: getExtension JavaDoc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...