正则表达式:匹配除* .TMP之外的所有内容

时间:2010-08-11 12:11:13

标签: java regex

我遇到了创建正则表达式的麻烦,该正则表达式检查文件是否具有扩展名.TMP,因此模式应该接受任何不等于(a-z 0-9或事件点)的字符串.TMP

要明确:当文件没有TMP扩展时,匹配器应该只有成功。

我已经发现我需要使用(?!表达式)来表示“不”......

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

3 个答案:

答案 0 :(得分:10)

if (!filename.endsWith(".TMP")) {
     /* then we found a match without using regExp */
}

答案 1 :(得分:5)

"(?<!\\.TMP)\\Z"

读取:除“.TMP”之外的其他内容,后跟字符串的结尾。

答案 2 :(得分:2)

这不是你问题的答案,但我认为你应该看看Apache Common IO,它有一些简单的方法,可以做你常做的一切。包括查找扩展名。然后你只需要制作一个if语句而不是一个reg。进出口。

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

并查看getExtension的特定java文档: getExtension JavaDoc