要求:
我必须在目录下找到一个名为uninstaller的应用程序,该目录包含很少的文件,如linux的)Uninstaller.exe(in (windows的案例)、Uninstaller.jar和Uninstaller.lax。
我试过了
final String pattern = "Uninstaller.*.(exe|[^lax]|[^jar])";
final FileFilter filter = new RegexFileFilter(pattern);
files = installDir.listFiles(filter);但是它返回的Uninstaller.lax在linux的情况下!
请帮我克服这个问题。
发布于 2013-05-31 09:39:26
如果我正确理解,您希望匹配以bin、jar或lax结尾的所有Unistaller文件。在这种情况下,请使用以下命令:
"Uninstaller\.(bin|jar|lax)"编辑
啊,那样的话,你就可以匹配:
"^Uninstaller(\.exe)?$"发布于 2013-05-31 09:43:39
当你这样做时:
[^lax]
定义一个字符类--只要它不是l,a,x,就可以匹配任何字符。
所以这个记号
(exe|[^lax]|[^jar])
手段
“匹配exe或匹配任何不是l/a/x的字符或匹配任何不是j/a/r的字符”
显然,这不是你想要的:)
您只想匹配Uninstaller和Uninstaller.exe。所以试试
Uninstaller(\.exe)?$
($表示字符串必须结束)
在这种情况下,您不必明确地说出所有不想匹配的事情,只需要说出您所做的事情。
发布于 2013-05-31 09:45:10
如果您只需要Uninstaller或Uninstaller.exe,那么您可以使用:
final String pattern = "Uninstaller(\.exe|$)";https://stackoverflow.com/questions/16854256
复制相似问题