Мне нужно прочитать текстовый файл с диска и вернуть все строки между двумя разными строками (эту часть я уже решил). Но если новый раздел найден без E :, он ничего не должен возвращать.
Итак, у меня есть этот текстовый файл:
[NT_BASIC]
"SYSTEM" WARNING 1 GB * 0000 2400
"SYSTEM" MINOR 500 MB * 0000 2400
[OTHERS],[DB2]
"D:" WARNING 1 GB * 0000 2400
"D:" MINOR 500 MB * 0000 2400
"E:" WARNING 1 GB 1-5 0700 1700
"E:" MINOR 500 MB 1-5 0700 1700
"F:" WARNING 5 % 1-5 0700 1700
"F:" MINOR 2 % 1-5 0700 1700
"H:" WARNING 1 GB 1-5 0700 1700
"H:" MINOR 500 MB 1-5 0700 1700
И с этим выражением: Я могу вернуть весь текст между [NT_BASIC] и E:
(?=NT_BASIC)([\s\S]*?)(?<=E:)
Однако, поскольку есть новый раздел информации (пустая строка, за которой следует «[» и другой тип раздела - в этом case " [OTHERS], [DB2] "), я не хочу ничего возвращать.
Есть ли способ добиться этого с помощью регулярных выражений?