Вы можете использовать положительный взгляд, чтобы убедиться, что сопоставленному тексту предшествует application/
с использованием этого регулярного выражения,
(?<=application/)[^/]+
Здесь, [^/]+
part будет захватывать любой текст кроме /
, давая вам желаемый текст 1007
Regex Demo
Java-код,
String s = "http://localhost:8080/api/rest/loan/application/1007/applicant/951/pan";
Pattern p = Pattern.compile("(?<=application/)[^/]+");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group());
}
печать
1007
Еще один более простой и эффективный способ выполнить ту же задачу - использовать следующий шаблон группировки
.
/application/([^/]+)
и захватить содержимое группы 1.
Regex Demo с шаблоном группировки
Обратите внимание, это намного быстрее, а также будет работать в широком смысле, так как осмотр иногда не поддерживается на некоторых диалектах.
Java-код,
String s = "http://localhost:8080/api/rest/loan/application/1007/applicant/951/pan";
Pattern p = Pattern.compile("/application/([^/]+)");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1));
}
Печать
1007