Мой вопрос связан с регулярными выражениями на Java и, в частности, несколькими совпадениями для данного шаблона поиска. Вся информация, которую мне нужно получить, находится в одной строке и содержит псевдоним (например, SA), который сопоставляется с IP-адресом. Каждый из них разделяется запятой. Мне нужно извлечь каждый из них.Регулярные выражения Java с использованием шаблона и сопоставления
SA "239.255.252.1", SB "239.255.252.2", SC "239.255.252.3", SD "239.255.252.4"
Моего Reg Ex выглядит следующим образом:
Pattern alias = Pattern.compile("(\\S+)\\s+\"(\\d+\\.\\d+\\.\\d+\\.\\d+)\"");
Matcher match = alias.matcher(lineInFile)
while(match.find()) {
// do something
}
Это работает, но я не полностью счастлив с ним, потому что с введением этой небольшой кусок коды, моя программа немного замедлилась (< 1 сек), но достаточно заметить разницу.
Итак, мой вопрос: я собираюсь об этом правильно? Существует ли более эффективное или возможно легкое решение без необходимости в течение некоторого цикла (совпадения)? и/или классы Pattern/Matcher?
Большое спасибо всем, кто нашел время, чтобы ответить на мой запрос. Это было очень полезным упражнением для меня, поскольку я все еще очень начинаю Java. Кстати, я добавил еще более конкретную информацию о шаблоне RegExp, и это, казалось, помогло. Есть известная строка («псевдонимы») перед первой парой псевдонимов/IP, которую я положил, и это определенно помогло. Еще раз спасибо ребятам! – Wilko