Регулярное выражение или другое получить все имена элементов из списка - PullRequest
0 голосов
/ 05 декабря 2018

Я начал с регулярного выражения, но для того, что я нашел, я думаю, что лучше сделать это другим способом.

Я хочу получить массив имен изображений из следующего текста:

Следующие изображения не удалось:

[T430040.tif, T432040.tif, T411030.tif, CH1090.tif, T432050.tif, T432090.tif, T432020.tif, CRP040.tif, T432070.tif, T040060.tif]

Array:
T430040
T432040 
T411030
CH1090
T432050
T432090
T432020 
CRP040 
T432070 
T040060

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Без регулярного выражения:

    String str = "The following images failed: [T430040.tif, T432040.tif, T411030.tif, CH1090.tif, T432050.tif, T432090.tif, T432020.tif, CRP040.tif, T432070.tif, T040060.tif]";
    String[] array = str.substring(str.indexOf("[") + 1, str.length() - 1)
            .replace(".tif", "")
            .split(",");
    System.out.println(Arrays.toString(array));

выведет массив:

[T430040,  T432040,  T411030,  CH1090,  T432050,  T432090,  T432020,  CRP040,  T432070,  T040060]
0 голосов
/ 05 декабря 2018

Этот код Java использует регулярное выражение \w+(?=\.) делает то, что вам нужно.

String s = "The following images failed: [T430040.tif, T432040.tif, T411030.tif, CH1090.tif, T432050.tif, T432090.tif, T432020.tif, CRP040.tif, T432070.tif, T040060.tif]";
Pattern p = Pattern.compile("\\w+(?=\\.)");
Matcher m = p.matcher(s);
while(m.find()) {
    System.out.println(m.group());
}

И печатает,

T430040
T432040
T411030
CH1090
T432050
T432090
T432020
CRP040
T432070
T040060
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...