首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用或不使用java regex操作程序

如何使用或不使用java regex操作程序
EN

Stack Overflow用户
提问于 2013-05-31 09:37:21
回答 4查看 55关注 0票数 0

要求:

我必须在目录下找到一个名为uninstaller的应用程序,该目录包含很少的文件,如linux的)Uninstaller.exe(in (windows的案例)、Uninstaller.jarUninstaller.lax

我试过了

代码语言:javascript
复制
final String pattern = "Uninstaller.*.(exe|[^lax]|[^jar])";
final FileFilter filter = new RegexFileFilter(pattern);
files = installDir.listFiles(filter);

但是它返回的Uninstaller.lax在linux的情况下!

请帮我克服这个问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-31 09:39:26

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

代码语言:javascript
复制
"Uninstaller\.(bin|jar|lax)"

编辑

啊,那样的话,你就可以匹配:

代码语言:javascript
复制
"^Uninstaller(\.exe)?$"
票数 2
EN

Stack Overflow用户

发布于 2013-05-31 09:43:39

当你这样做时:

[^lax]

定义一个字符类--只要它不是l,a,x,就可以匹配任何字符。

所以这个记号

(exe|[^lax]|[^jar])

手段

“匹配exe或匹配任何不是l/a/x的字符或匹配任何不是j/a/r的字符”

显然,这不是你想要的:)

您只想匹配UninstallerUninstaller.exe。所以试试

Uninstaller(\.exe)?$

($表示字符串必须结束)

在这种情况下,您不必明确地说出所有不想匹配的事情,只需要说出您所做的事情。

票数 0
EN

Stack Overflow用户

发布于 2013-05-31 09:45:10

如果您只需要UninstallerUninstaller.exe,那么您可以使用:

代码语言:javascript
复制
final String pattern = "Uninstaller(\.exe|$)";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16854256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档