更好的正则表达式匹配字符串?

时间:2014-06-26 19:05:26

标签: java regex

我有一个“moreinfo”目录,其中包含一些html文件和其他文件夹。我正在搜索moreinfo目录中的文件(而不是moreinfo中的子目录)与toolId*匹配。文件的名称与toolId相同,

enter image description here

以下是我编写代码的代码段,如果我的toolId = delegatedAccess列表根据宽卡过滤器(delegatedAccess.html & delegatedAccess.shopping.html)返回2个文件(toolId*

他们是一个更好的方法来编写检查直到最后一个发生期间的正则表达式并返回与我的toolId完全匹配的文件吗?

infoDir =/Users/moreinfo


 private String getMoreInfoUrl(File infoDir, String toolId) {
        String moreInfoUrl = null;
        try {
            Collection<File> files = FileUtils.listFiles(infoDir, new WildcardFileFilter(toolId+"*"), null);
            if (files.isEmpty()==false) {
            File mFile = files.iterator().next();
            moreInfoUrl = libraryPath + mFile.getName(); // toolId;
        }
    } catch (Exception e) {
        M_log.info("unable to read moreinfo" + e.getMessage());
    }
    return moreInfoUrl;

}

1 个答案:

答案 0 :(得分:0)

这就是我最后所做的所有好评。我做了字符串操作来解决我的问题。正如Regex不是正确的解决方案。

private String getMoreInfoUrl(File infoDir, String toolId) {
    String moreInfoUrl = null;
    try { 
        Collection<File> files = FileUtils.listFiles(infoDir, new WildcardFileFilter(toolId+"*"), null);
        if (files.isEmpty()==false) {
                for (File mFile : files) {
                    int lastIndexOfPeriod = mFile.getName().lastIndexOf('.');
                    String fNameWithOutExtension = mFile.getName().substring(0,lastIndexOfPeriod);
                    if(fNameWithOutExtension.equals(toolId)) {
                        moreInfoUrl = libraryPath + mFile.getName();
                        break;
                    }

                }
        }
    } catch (Exception e) {
        M_log.info("unable to read moreinfo" + e.getMessage());
    }
    return moreInfoUrl;

}