2015-09-18 4 views
0

У меня есть много файлов .json в папке. И мне нужно получить файл с полным именем «ranjans-vra2-standalone-269d9199a-0.vraCafe.0-nimbus-vra-deploy-result.json». Как и мудрый, у меня так много папок, и я хочу получить только этот файл из этих папок. Для этого я хочу использовать регулярное выражение.Получить имя файла с регулярным выражением

Общим для каждого файла является: «vraCafe» и «.json».

Я должен использовать его как testbedPath abd supply для JSONObject.

JSONObject jsonObject = readSimpleJson(testbedPath); 

Какое регулярное выражение sholud я использую для получения testbedPath?

ответ

0

Просто найдите, если имя файла содержит «vraCafe» и «.json», если да, удалите его.

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

Edit: Для того, чтобы иметь конкретную проверку на расширение файла

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

Я хотел бы использовать '&& fileName.endsWith ("JSon.")', Чтобы убедиться, '.json' - расширение файла. –

+0

, это хороший момент, только на безопасной стороне ... Согласовано..добавление –

+0

Проблема здесь. Я получаю testbedPath из файла testNG в качестве параметра для java. Я хотел использовать некоторое регулярное выражение, чтобы получить его напрямую. –

1

Если вы хотите использовать регулярное выражение, вы можете использовать:

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

Это будет соответствовать каждый файл имя с файлом расширения .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"); 
     } 
    } 
}