Парсер контента+Разделение на блоки. Подскажите

sipoku

Client
Регистрация
04.04.2010
Сообщения
266
Благодарностей
138
Баллы
43
Добрый день всем!

Хочу сделать подобие универсального парсена контента для доров. Нашел на форуме несколько подходящих кусков кода на СиШарпе. Беру "как есть" - работает, но выглядят блоки не совсем так, как хотелось бы. Чуток меняю код - все ломается и не работает. Помогите, братья (и сестры).

Шаблон во вложении. Никаких доп файлов нет. Работает так:
- проходит по 3 источникам (случайные выбираем);
- собирает текст;
- чистит, убирает короткие строчки;
- разделяет на блоки (для дальнейшего использования).

И вот на этом этапе все ломается!

Вот код, который я взял на этом форуме:

Код:
string input = project.Variables["content2"].Value; // Исходный текст
var list = project.Lists["temp"]; // Список выходных строк
list.Clear(); // Очищаем список
int count = 10; // Количество строк
for (int i = 0; i < count; i++)
{
    string pattern = @"^.{200,800}(\.|\?|\!|\s)"; // где 800 - максимальная длина выходных строк (в символах)
    Match match = Regex.Match(input, pattern);
    if (match.Success)
    {
        list.Add(match.Value.Trim());
        input = input.Remove(0, match.Length);
    }
}
project.Variables["content2"].Value = input;
В исходном варианте было 0,800 и другая регулярка. Но тогда куски контента иногда брались слишком маленькие и не всегда с начала предложения (вроде бы). Пытаюсь ставить 300,800 и пр., и ВСЕ, блоки не нарезаются.
Я в C# не шарю, так что разобраться сложно. Может контента исходного не хватает? Или в этом блоке можно только 0,[max] указывать?

И чтобы отдельно не спрашивать, подскажите еще, что значит эта строка?
Код:
int count = 10; // Количество строк
Это количество блоков, которые будут созданы в списке?


Заранее спасибо за ответы. И отдельное спасибо автору этого кода!
 

Вложения

Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)