Есть вот такой кусок кода, который читает из файла строки и парсит в регулярном выражении в int
. Проблема в том, что регулярное выражение пропускает пять int
, а надо строго четыре.
List<Integer> integers = new ArrayList<Integer>();
//Reading key in the string
line2 = line2;
Pattern pattern = Pattern.compile("\\d+\\S?\\d*\\d+\\S?\\d");
Matcher matcher = pattern.matcher(line2);
while (matcher.find() ) {
String s = matcher.group(0);
if (s.replaceAll("\\D", " ").length() == s.length()) {
integers.add(Integer.parseInt(s));
};
Так как вы не указали диалект регулярных выражений, вот вам POSIX ERE, достающее четвертое число:
^[^[:digit:]]*([[:digit:]]+[^[:digit:]]+){3}([[:digit:]]+).*$
Пропуск нечисел, три последовательночти число-нечисло (группа 1), число (группа 2), и пропуск всего остального до конца строки. Ваше четвёртое число в группе 2.
Из комментариев стало понятно, что вам нужна четвёртая цифра. Это делается так:
[^[:digit:]]*[[:digit:]]{3}([[:digit:]])
Ваша четвёртая цифра в группе 1.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу придумать хотя бы алгоритм нахождения всех корней уравнений xy = zПотом нужно будет его запрограммировать
Я в Android studio создаю приложение средствами HTML, Css, JS(дабы владею ими)Вопрос: как я могу получить доступ к HTML тегу(например "p"), в который динамически...
Пытаюсь создать контроллер spring bootПроект разбит на несколько модулей: dao, entities, services, controllers