java - 如何使用 Or 和 Not java 正则表达式运算符

标签 java regex

要求:

我必须在一个目录下找到一个名为uninstaller的应用程序,该目录包含一些文件,例如Uninstaller(如果是linux操作系统)Uninstaller.exe(如果是 Windows)、Uninstaller.jarUninstaller.lax

我试过了

final String pattern = "Uninstaller.*.(exe|[^lax]|[^jar])";
final FileFilter filter = new RegexFileFilter(pattern);
files = installDir.listFiles(filter);

但在 Linux 上它会返回 Uninstaller.lax!

请帮助我解决这个问题。

最佳答案

如果我理解正确的话,您希望匹配所有以 binjarlax 结尾的 Unistaller 文件。在这种情况下,请使用:

"Uninstaller\.(bin|jar|lax)"

编辑:

啊,这样的话,你可以匹配:

"^Uninstaller(\.exe)?$"

关于java - 如何使用 Or 和 Not java 正则表达式运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854256/

相关文章:

java - 在java中运行主命令

java - 返回 null 或再次抛出异常

用于分享计数的 Java 库/API(点赞数、推文数、+1 数)

java - LargePageHeapSizeThreshold 会激活JVM 中的UseTransparentHugePage 吗?

python - 验证正则表达式中的单点和空格

java - 如何使用字符打印锯齿状数组?

javascript - 如何在没有标记的情况下匹配两个标记之间的字符串

regex - mod_rewrite 可以做数学吗?

javascript - 从javascript中的字符串中删除一些特殊字符

java - 迭代字符串。搜索特殊字符。使用正则表达式