Есть строка:
random_ 123 _text 456 random_text_end
Подскажите пожалуйста каким будет регулярное выражение для поиска 456 в данной строке если не известно: будет ли random_ 123 _text и будет ли random_text_end? Главное условие что искомое число последнее в строке при этом как до, так и после может быть что угодно.
Спасибо.
Можно просто перебором найти последнее вхождение:
//Основной метод приложения
public static void main(String[] args) throws IOException {
String text = "random_ 123 _text 456 random_text_end";
Pattern pattern = Pattern.compile("(\\d+)");
Matcher matcher = pattern.matcher(text);
String result = null;
while (matcher.find()){
result = matcher.group(0);
}
//Тут обрабатываем результат
String resultHandler = result; //result = "456"
}
Цикл сработает, но можно решить и одним выражением: (\d+)[^\d]*$ (группа цифр, после которой до конца строки цифры не встречаются).
На Java будет выглядеть так:
String text = "random_ 123 _text 456 random_text_end";
Pattern pattern = Pattern.compile("(\\d+)[^\\d]*$");
Matcher matcher = pattern.matcher(text);
//если цифр в строке нет, то будет null.
String result = matcher.find() ? matcher.group(1) : null;
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники