Шаблон регулярного выражения для получения только определенной части из списка строк - PullRequest
0 голосов
/ 30 августа 2018

Поскольку я новичок в шаблоне регулярных выражений, я хочу извлечь определенную часть из нижеприведенного списка строк и сохранить ее в Map как пару значений ключа.

Пример:

List<String> ref3Path = new ArrayList<String>(); 
ref3Path.add("s3://REF3/ca209_040/ahshd.csv");
ref3Path.add("s3://REF3/ca209_040/grren.csv");
ref3Path.add("s3://REF3/ca209_030/aestyyuae.csv");

я хочу только ca209_040 и aesae.csv из приведенного выше списка и хочу сохранить на карте.

Ниже приведен код, который я пишу для сравнения списка и карты:

public static void main(String[] args) {
    // TODO Auto-generated method stub

    MultiValuedMap<String, String> studyDomain = new ArrayListValuedHashMap<>();
    List<String> ref3Path = new ArrayList<String>(); 

    studyDomain.put("ca209_040", "czvv.csv");
    studyDomain.put("ca209_040", "efe.csv");
    studyDomain.put("ca209_030", "efef.csv");
    studyDomain.put("ca209_030", "hhhjd.csv");
    studyDomain.put("ca209_020", "rr.csv");
    studyDomain.put("ca209_020", "eghh.csv");

    ref3Path.add("s3://REF3/ca209_040/jlkjl.csv");
    ref3Path.add("s3://REF3/ca209_040/aesaehkhk.csv");
    ref3Path.add("s3://REF3/ca209_030/aesaedhd.csv");
    ref3Path.add("null");
    ref3Path.add("s3://REF3/ca209_020/aedae.csv");
    ref3Path.add("s3://REF3/ca209_020/aeqwee.csv");

    log.info("List of inbox: " +studyDomain);
    log.info("List of ref3 :" +ref3Path);

    rule1(studyDomain,ref3Path);
}

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете сделать это с помощью простой функции split. Шаблон регулярных выражений является излишним

Примечание: проверка граничных условий

scala> val arr = "s3://REF3/ca209_040/aesae.csv".split('/')
arr: Array[String] = Array(s3:, "", REF3, ca209_040, aesae.csv)

scala> arr(3)
res2: String = ca209_040

scala> arr(4)
res3: String = aesae.csv

В Java

Примечание: проверка граничных условий

public class Demo {
    public static void main(String[] s) {
        String[] args = "s3://REF3/ca209_040/aesae.csv".split("/");
        System.out.println(args[3] + " ,  " + args[4]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...