Сопоставление нескольких строк в двух шаблонах регулярного выраженияJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Сопоставление нескольких строк в двух шаблонах регулярного выражения

Сообщение Гость »


Мне нужно найти решение, но я не могу его найти. Кажется, решение довольно близко, но чего-то не хватает, и я верю, что вы сможете мне с этим помочь.

Это строка, и каждая строка представляет собой одну строку:

Пинг www.onet.pl [52.85.243.125] с 64 байтами данных [Тип=8 Код=0] [TTL=255]: Ответ от: 52.85.243.125:0 seq=1 байт=92 тип=ECHO REPLY время=12,7мс Ответ от: 52.85.243.125:0 seq=2 байт=92 тип=ECHO REPLY время=11,3мс Ответ от: 52.85.243.125:0 seq=3 байт=92 тип=ECHO REPLY время=13,1мс Ответ от: 52.85.243.125:0 seq=4 байт=92 тип=ECHO REPLY время=13,2мс и мой код:

String REGEX_1 = "\\A.*\\[TTL=(\\d+)\\]:$"; String REGEX_2 = ".*Ответ от.*seq=(\\d+).*time=(\\d+).*"; Шаблоны List = new ArrayList(); окончательный шаблон шаблона = Pattern.compile(REGEX_1); окончательный шаблон шаблон_2 = шаблон.компилировать(REGEX_2, шаблон.MULTILINE); шаблоны.add(шаблон); шаблоны.add(шаблон_2); for(Шаблон: шаблоны){ окончательный Matcher matcher = pat.matcher(string); если (matcher.matches()) { пытаться { окончательный int ttl = Integer.parseInt(matcher.group(1)); окончательный длинный seq = Long.parseLong(matcher.group(2)); окончательный двойной rtt = Double.parseDouble(matcher.group(3)); вернуть новую статистику(rtt, ttl, seq); } catch (окончательное NumberFormatException e) { вернуть ноль; } } } Я хочу получить TTL из первой строки и seq/time из следующих.

Ожидаемый результат:

time=12,7, TTL=255, seq=1 время=11,3, TTL=255, сек=2 время=13,1, TTL=255, сек=3 время=13,2, TTL=255, сек=4 Раньше у меня был только один шаблон, но он не работал, поэтому мне сказали разделить его. К сожалению, я не могу найти решение. Как указано выше, он ничего не возвращает. Не могли бы вы мне помочь?

Я пытался поставить

while(matcher.find()) внутри условия if, но тоже не сработало.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»