Получить строки используя регулярные выражения из txt JAVA

Eсть txt фаил (в котором хранятся версии установленных обновлений ПО) мне нужно как то получить самую последнюю версию вот пример ---->

30.11.2020 Обновление 2.218.2.218
27.11.2020 Обновление 2.217.2.217
20.11.2020 Обновление 2.216.2.216

насколько я понял регулярка должна выглядеть вот так (\d{1}\.\d{3}\.\d{1}\.\d{3}) а вот как пройтись по всему документу непонятно

 List<String> lines = Files.readAllLines(Paths.get("\"D:\\d\\Readme.txt\""));

Pattern pattern = Pattern.compile("\\d{1}\\.\\d{3}\\.\\d{1}\\.\\d{3}");

for (String read : lines) {
    
                }

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

Автор решения: Aziz Umarov

Я вот так решил

data.txt

30.11.2020 Обновление 2.218.2.218
27.11.2020 Обновление 2.217.2.217
20.11.2020 Обновление 2.216.2.216
public static void main(String[] args) throws Exception {
    File file = new File("C:/data.txt");

    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
      String line;
      String fullText = "";
      while ((line = br.readLine()) != null) {
        fullText += line;
      }
      final String sourceText = fullText;
      Matcher matcher = Pattern.compile("(\\d{1}\\.\\d{3}\\.\\d{1}\\.\\d{3})").matcher(sourceText);
      List<String> matchedResults =
          matcher
              .results()
              .map(result -> sourceText.substring(result.start(), result.end()))
              .collect(Collectors.toList());
      System.out.println(matchedResults);
    }
  }

выхлоп такой

[2.218.2.218, 2.217.2.217, 2.216.2.216]

ну или под ваш вариант

public static void main(String[] args) throws Exception {

    List<String> lines = Files.readAllLines(Paths.get("C:\\data.txt"));

    final String sourceText = lines.stream().collect(Collectors.joining());
    Matcher matcher = Pattern.compile("(\\d{1}\\.\\d{3}\\.\\d{1}\\.\\d{3})").matcher(sourceText);
    List<String> matchedResults =
        matcher
            .results()
            .map(result -> sourceText.substring(result.start(), result.end()))
            .collect(Collectors.toList());
    System.out.println(matchedResults);
  }
→ Ссылка