напечатать строку, которая начинается с рокового в текстовом файле с использованием Java - PullRequest
0 голосов
/ 12 октября 2018

У меня есть файл.мне нужно извлечь строку, начинающуюся со фатальной, как эта

роковая: [infra2_aodh_container-4cc917f6]: FAILED!=> {"изменено": ложно, "не удалось": верно, "module_stderr": "nsenter: невозможно открыть / proc / ns / mnt: нет такого файла или каталога \ n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}

1 Ответ

0 голосов
/ 12 октября 2018

Для этого вам не нужны регулярные выражения.

Вы можете просто разбить строки и перебрать строки и выбрать те из них, которые начинаются с фатальной строки (с помощью метода StartWith (String s).

Вот решение с использованием некоторых потоков Java 8:

public void Example() {
    String text = "fatal: something went wrong\nerror: something else went wrong\nFATAL: ...\nanother text\nand some more lines...";
    List<String> lines = Arrays.asList(text.split("\n"));

    String searched = "fatal";
    List<String> fatalMessages = lines.stream().filter(s -> s.toLowerCase().startsWith(searched)).collect(Collectors.toList());
    fatalMessages.stream().forEach(System.out::println);
}

Вывод:

неустранимый: что-то пошло не так

FATAL: ...

Если вам не нужна вторая строка (с заглавными буквами), просто удалите toLowerCase ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...