Я пытаюсь найти (с помощью Regex) в большом текстовом файле первую строку, где вместо «True» стоит «False». В этом случае есть несколько строк.
Пример текстового файла:
test, test, test, True,
test, test, test, True,
test, test, test, False, (i want this line)
test, test, test, False,
test, test, test, True,
test, test, test, True,
test, test, test, False,(and that)
test, test, test, False,
test, test, test, True,
test, test, test, True,
Я читаю файл построчно. Всегда, когда читаемая строка соответствует регулярному выражению «True», она читает следующую строку и пытается проверить, соответствует ли следующая строка регулярному выражению «False». Если так (пока), он должен напечатать мне строку.
try {
BufferedReader br =
new BufferedReader(new FileReader(C:\\Directory\\test.txt)
String lineRead;
while ((lineRead = br.readLine()) != null) {
if(lineRead.matches( ".*True.*")){
if((lineRead = br.readLine()) != null){
if((lineRead.matches( ".*False.*"))){
System.out.println(lineRead);
}
}
}
}
}
Это дает мне большинство строк, но не все. Линии разделены на несколько тысяч. «Ложных» строк всегда несколько сотен, которые следуют. Так что не должно быть проблем с «перепрыгиванием».