Поиск цифр в строке

Можно ли в строке искать по условию ( буква.число число число число ) . Найти год в названии файла например файл содержит в названии год по такому шаблону у.2018 . Можно ли не используя переборов и циклов найти год, с помощью регулярных выражений . Например содержит ли строка - имя букву точку и 4 числа.


Ответы (1 шт):

Автор решения: Alex Rudenko

Регулярка для поиска шаблона "буква точка 4 цифры" будет выглядеть так:

В Java-коде это выражение будет записано так:

Pattern letterDot4Digits = Pattern.compile("\\p{L}\\.\\d{4}");

Для проверки соответствия можно использовать String::matches или Pattern::matcher::find

// нужно добавить .*, так как matches сопоставляет целую строку
if (filename.matches(".*\\p{L}\\.\\d{4}.*")) {
    // ...
}

if (letterDot4Digits.matcher(filename).find()) {
    // ...
}
→ Ссылка