2013-02-28 2 views
0

Привет, если кто-то может помочь вам стать новым для регулярных выражений, и я сделал некоторые базовые примеры, но ничего, что мне нужно. Это мой текстовый файл, который я должен прочитать:C# регулярное выражение, чтобы найти «[данные]» и текст, который следует

[data] 
84 73 0 -124 0 50 
84 73 0 -124 0 50 
84 84 0 -124 0 50 
87 109 0 -124 0 50 
82 120 0 -124 0 50 
82 132 0 -124 0 50 
83 143 0 -124 0 50 
83 154 0 -124 0 50 

Мой текущий код читает в текстовый файл и сохраняет его в список я просто нужно выражение, которое определяет заголовок [data], а затем начинает читать все информацию после [data] до конца или предпочтительно до тех пор, пока она не достигнет \r\n на случай, если в текстовом файле будет больше данных. Я не прошу кого-либо сделать мой код, у меня все остальное сделано, просто выражение или точка в правильном направлении.

Ваша помощь очень ценится.

+1

Что означает «начинает читать всю информацию»? Каков ожидаемый результат? – VladL

+0

Что вы подразумеваете под «... и сохраняет его в списке?» Мы говорим «Список » здесь? Если это так, то если это в списке, зачем вам регулярное выражение? –

+0

вы можете прочитать свой файл по строкам, пропустить первую строку, если она содержит «[данные]» – polkduran

ответ

0

Это, вероятно, не является кратчайшим регулярное выражение, которое будет делать то, что вы хотите, но я думаю, что это работает (\[data\]{1}\s*(\d+\s*|(\-{1})\d+\s*)+\n). Я использовал http://regexpal.com/, чтобы проверить выше регулярное выражение с помощью:

[data] 123 73 0 -124 21312 123 73 0 -123 231231 
123 

в качестве тестовых данных.

+0

спасибо, что именно я был после. Очень признателен :) – deanson

0

Почему использовать регулярное выражение, когда вы можете использовать FilereadLines и Linq:

var lines = File.ReadLines("text.txt"); 
var result = lines.SkipWhile(i => i != "[data]").Skip(1); 
+0

Спасибо, что это работает, но только если нет другого текста ниже [данных] 84 73 0 -124 0 50 84 73 0 -124 0 50 84 84 0 -124 0 50 87 109 0 -124 0 50 82 120 0 -124 0 50 82 132 0 -124 0 50 83 143 0 -124 0 50 83 154 0 -124 0 50 – deanson

+0

Какой еще текст может быть? –

+0

это будет выше [данных] время_запуска = 14: 33: 45.0 Длина = 00: 49: 34.2 Интервал = 1 UPPER1 = 0 LOWER1 = 0 Upper2 = 0 Lower2 = 0 и комментарии будут ниже которой разделяется на \ r \ n – deanson

Смежные вопросы