Регулярное выражение для числового

на самом деле у меня есть файл в этой строке я должен найти строку "[12] 18383" я использую этот код

while ((read = br.readLine()) != null) {
                if (read.trim().matches(" ^[0-9]*$ ")) {
                    String[] arrOfStr = read.split("[ ]");
                     int pid = Integer.parseInt(arrOfStr[1].trim());
                    for (String a : arrOfStr)
                {
                    System.out.println(": terms >>>>>>>>>>>" + a);

                    }
                }

вывод: 18383 поэтому из многих строк я должен искать ту, которая похожа на выше а затем число вне квадратных скобок должно печатать

Пожалуйста, покажите нам одну совпадающую строку и одну не совпадающую строку.

Tim Biegeleisen 18.03.2019 12:17

Прочтите регулярное выражение, затем вы должны заметить, что ` ^[0-9]*$ ` не работает: ^ и $ в большинстве случаев представляют начало и конец ввода, поэтому любые пробелы до и после них не работают. имеет смысл. При этом выражение ^[0-9]*$ будет означать, что «весь ввод (строка) должен содержать цифры или быть пустым» (String.matches() действует аналогично этому, кстати). Вам нужно обновить свое выражение, чтобы отразить структуру ввода, например. необходимо учитывать часть [number].

Thomas 18.03.2019 12:21

Используйте Pattern p = Pattern.compile("\\[\\d+]\\s+(\\d+)");, а затем при чтении строк Matcher m = pat.matcher(read.trim()); if (m.matches) { pid = Integer.parseInt(m.group(1)); }

Wiktor Stribiżew 18.03.2019 12:26

@WiktorStribiżew, сэр, спасибо за вашу помощь, но я использовал этот шаблон, он не работает,

J.Doe rano 18.03.2019 12:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
4
51
1

Ответы 1

Вы можете использовать регулярное выражение ]\s+([^\s]+) для захвата после квадратных скобок.

Другие вопросы по теме