File file = new File("file-type-string-i-want-2000-01-01-01-01-01.conf.gz");
Matcher matcher = pattern.compile("\\-(.*)\\-\\d{4}")).matcher(fileName);
StringBuilder sb = new StringBuilder();
while (matcher.find()) {
sb.append(matcher.group());
}
stringList = Arrays.asList(sb.toString().split("-"));
if (stringList.size() >= 2) {
nameFragment = stringList.get(stringList.size() - 2);
}
Желаемый результат заключается в извлечении
string-iwant
из строк, которые выглядят следующим образом
file-type-string-iwant-2000-01-01-01-01-01.conf.gz
К сожалению, формат для "string-iwant" не является фиксированнымдлина буквенно-цифровых символов, которые будут включать только ОДИН дефис, НО никогда не начинаются с дефиса.Форматирование даты соответствует, год всегда следует за строкой, поэтому мой текущий подход - сопоставить с -year, но у меня возникают трудности с исключением материала в начале.
Спасибо за любые мысли или идеи
Редактировать: обновленные строки