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

Java 正则表达式:匹配除*.TMP以外的所有内容,java,regex,Java,Regex,我很难创建一个正则表达式来检查文件是否有扩展名.TMP,因此模式应该接受任何不等于a-z 0-9或event dots.TMP的字符串 需要明确的是:只有当文件没有TMP扩展名时,匹配程序才应该成功 我已经准备好了,我需要使用它?!表示不 (?!.*TMP]) // is wrong ;-) Read:后面跟字符串结尾的.TMP以外的内容 这不是你问题的答案,但我认为你应该看看Apache Common IO,它有一系列简单的方法,可以完成你通常做的所有事情。包括查找扩展。然后你只需要做一个i

我很难创建一个正则表达式来检查文件是否有扩展名.TMP,因此模式应该接受任何不等于a-z 0-9或event dots.TMP的字符串

需要明确的是:只有当文件没有TMP扩展名时,匹配程序才应该成功

我已经准备好了,我需要使用它?!表示不

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

Read:后面跟字符串结尾的.TMP以外的内容

这不是你问题的答案,但我认为你应该看看Apache Common IO,它有一系列简单的方法,可以完成你通常做的所有事情。包括查找扩展。然后你只需要做一个if语句而不是reg。经验

请参阅getExtension的特定java文档:

为什么不匹配.TMP并在不匹配时执行操作?您需要正则表达式,还是只需要匹配具有TMP扩展名的文件?代码必须使用spring进行配置,我想使用regEx保持所有选项的打开状态。必须能够接受以blabla iso开头的文件,并在需要时查看其他实现中未以.TMP结尾的所有文件。可能的重复是有意义的。但是,为了保持Spring上下文文件易于理解,您可能需要考虑除ReGEX之外的方法。tmp看起来比regex IMO更好。+1同意,这个问题太小,无法应用正则表达式。+1但在OS X或Windows上,在进行不区分大小写的文件系统比较之前,您可能希望将文件名转换为大写。当您只有一个regexp时,每个问题看起来都像行噪波-me@msw:这个问题明确要求一个regexp。我认为对回答被问到的问题投反对票是不公平的。这不是惩罚海报,而是将答案向下移动,这是很自然发生的,因此向下移动投票被删除。的确,这个问题需要一个regexp,但有时这个问题是错误的。我不希望你一定同意这个立场,但我希望你能理解。
"(?<!\\.TMP)\\Z"
if (!filename.endsWith(".TMP")) {
     /* then we found a match without using regExp */
}