[блок1]
какойтотекст
какойтотекст
какойтотекст
[блок2]
какойтотекст
какойтотекст
какойтотекст
[блок3]
какойтотекст
какойтотекст
какойтотекст
вопрос парсинга
Есть задачка распарсить файл настроек типа такого:
Код:
надо выдирать то что в []-скобочках и то что после них
я написал примерно такой код
Код:
Match match2 = Regex.Match(text, "\\[(.*?)\\](.*?)", RegexOptions.Singleline);
while (match2.Success)
{
вытаскиваем данные
match2 = match2.NextMatch();
}
while (match2.Success)
{
вытаскиваем данные
match2 = match2.NextMatch();
}
проблема в том что
Код:
(.*?)
Код:
(.*)
Существует ли какой-нибудь способ заставить выбирать данные до начала следующего блока и как в таких случаях поступают задача по-моему распространенная?
спасибо
1) файл читать по-строчно
2) если строка подходить под выражение @"\s*\[.*?\]\s*", то следующие строки передавать обработчику этого блока
Код:
foreach (Match m in Regex.Matches(richTextBox1.Text + "[", "\\[.+?\\](.|\n)*?(?=\\[)"))
{
MessageBox.Show(m.Value);
}
{
MessageBox.Show(m.Value);
}
Тогда каждую строчку из файла он будет считать за отдельную строку
построчное прочтение будет лучше.