Вот три простых способа сделать это.
Способ без регулярных выражений. Просто разделите, используя _
, и получите последний элемент из массива, используя этот код,
String s = "abc____2019____5_10_40_56_20190319213500.pdf";
String[] data = s.split("_");
System.out.println(data[data.length-1]);
печать
20190319213500.pdf
Способ Regex еще круче, с одним кодом лайнера. Заменить все от начала до последнего появления подчеркивания,
String s = "abc____2019____5_10_40_56_20190319213500.pdf";
System.out.println(s.replaceAll("^.*_", ""));
печать
20190319213500.pdf
Еще один способ использования find
метода в Matcher
состоит в том, чтобы найти комбинацию из последних цифр, за которой следует любой нецифровый шаблон до конца строки, используя этот код,
String s = "abc____2019____5_10_40_56_20190319213500.pdf";
Pattern p = Pattern.compile("\\d+\\D*$");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group());
} else {
System.out.println("Didn't find");
}
печать
20190319213500.pdf