2012-12-13 5 views
-2

Скажем, у меня есть текстовый файл, который выглядит следующим образом:синтаксического анализа групп текста

group 1 
group 1 
arbitrary text 
group 1 
arbitrary text 
group 2 
arbitrary text 
arbitrary text 
group 2 
group 2 
arbitrary text 
# 

я хотел бы, чтобы вытащить каждую информацию о группе, сохраняя вместе в его собственном списке, то остановятся «#».

List1:

group 1 
group 1 
arbitrary text 
group 1 
arbitrary text 

List2:

group 2 
arbitrary text 
arbitrary text 
group 2 
group 2 
arbitrary text 

Я попробовал несколько вещей, которые не получают где-нибудь близко, и мои навыки Лямбда только о несуществующей. Может ли кто-нибудь помочь?

+2

Несколько вещей, таких как ...? И какой язык/инструмент? – squiguy

+1

Покажите нам «несколько вещей», которые не сработали. Расскажите, каковы были ваши результаты и что вы ожидали. –

+1

Итак, имена групп всегда начинаются в первом столбце, тогда как произвольные текстовые части имеют отступы хотя бы на одно место? –

ответ

1

Из головы, используя System.Text.RegularExpressions.Regex класс (.NET Framework), вот простой шаблон, который почти делать то, что вы хотите:

group\ (\d+)[\w\W]*group\ \1

Проблема заключается в том, что не улавливает последний «произвольный текст» до начала следующей группы и не проверяет # char, чтобы остановить захват. Но это хорошее начало, я думаю :)

Regex regex = new Regex(@"group\ (\d+)[\w\W]*group\ \1", RegexOptions.Multiline); 
Смежные вопросы