用regex获取文件名

时间:2015-09-18 06:12:34

标签: java string

我在文件夹中有很多.json文件。我必须得到一个全名为“ranjans-vra2-standalone-269d9199a-0.vraCafe.0-nimbus-vra-deploy-result.json”的文件。同样明智的我有这么多文件夹,我想从这些文件夹中只获取此文件。为此,我想使用正则表达式。

每个文件的常见内容是:“vraCafe”和“.json”。

我必须将它用作JSONObject的testbedPath abd。

JSONObject jsonObject = readSimpleJson(testbedPath);

我使用什么正则表达式来获取testbedPath?

2 个答案:

答案 0 :(得分:1)

如果您想使用正则表达式,可以使用:

([\w\S]*(vraCafe)[\w\S]*(\.json)$)

它将使用fileextension .json和每个文件名匹配 名字中vraCafe

例如:

ranjansvra-vra2-standalone-ve269d9199a-0.0-nimbus-vra-vraCafedeploy-result.json

ranjansvra-vra2-svraCafetandalone-ve269d9199a-0.0-nimbus-vra-deploy-result.json

See the running example

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String filename = "ranjansvra-vra2-svraCafetandalone-ve269d9199a-0.0-nimbus-vra-deploy-result.json";

        Pattern p = Pattern.compile( "([\\w\\S]*(vraCafe)[\\w\\S]*(\\.json)$)");
        Matcher m = p.matcher(filename);
        if (m.matches()) {
            System.out.println("Matches");
        }
    }
}

答案 1 :(得分:0)

找到文件名是否包含'vraCafe'和'.json',如果是,则删除它。

 if(fileName.contains("vraCafe") && fileName.contains(".json")){
    //get it and delete it
  }

编辑: 为了具体检查文件扩展名

 if(fileName.contains("vraCafe") && fileName.endsWith(".json")){
    //get it and delete it
  }