【发布时间】:2012-11-06 18:15:18
【问题描述】:
我将文件名格式数据保存在 Pattern 对象中。例如:_\\d+x\\d+\\.png。在我的设置中,这将表示不同大小的图标(例如icon_16x16.png、icon_48x48.png 等)。
我有一个将实际文件名与给定模式进行比较的方法;但是,还必须提供基本名称(在我的示例中,这将是“图标”):
public boolean matches(String filename, String baseName) {
if (!IOCase.SYSTEM.checkStartsWith(filename, baseName)) {
return false;
}
return format.matcher(filename.replaceFirst(baseName, "")).matches();
}
我在这里首先检查filename 是否以基本名称开头。如果是这样,则从文件名字符串中删除基本名称,以便可以将其与 Pattern 对象 (format) 进行比较。
我知道我可以做到 return filename.matches(Pattern.quote(baseName) + format.pattern()),但我想知道是否有更好的、希望更程序化的方式来做到这一点。
确切地说,我想知道是否可以添加到一个 java.util.regex.Pattern 或合并其中两个而不处理它们的底层字符串表示。 p>
【问题讨论】:
-
您的方法是 100% 程序化的。你有什么问题?
-
您已经有 2 种程序化方式。
-
抱歉,我忘了包括问题中最重要的部分。已编辑。
标签: java regex string pattern-matching filenames