Разбивка строки в list по регуляке количество символов+знаки

Kreola

Client
Регистрация
31.07.2015
Сообщения
44
Благодарностей
3
Баллы
8
Приветствую!
Ребята прошу помощи в реализации сабжа
Есть строка в n-e количество символов.
<br>системе растений</strong> </td></tr><tr><td valign=\"top\"></td><td></td></tr></tbody></table><p>Роль грунта в аквариуме, даже если в нем нет растений, имеет не только декоративное значение, благодаря цветовой составляющей. Грунт помогает роющим донным рыбам, или другим гидробионтам, поддерживать свои естественные навыки и потребности. А если в Вашем аквариуме растут растения - то необходимость <b>Грунта Деннерле аквариумного мелкого 1-2 мм 5 кг</b> становится обязательной, так как в нем закрепляются корни растений, и через грунт растения питаются при внесении прикорневой подкормки, или естественным способом, используя заиленность грунта.<p> <b>Белый аквариумный мелкий Грунт Dennerle Kristall-Quarz 1-2 мм 5 кг</b> не имеет острых краев, так как прошел окатку, поэтому не представляет никакой опасности для донных рыб, которые очень любят рыться в грунте.<p>Раз в 2-5 лет в аквариуме приходится кардинально менять грунт, или хотя бы промыть его.<p> <b>Размер фракции:</b> 1-2 мм; <b>Цвет</b> белый; <b>Вес:</b> 5 кг.<p>В этой категории вы можете купить в Киеве по доступной цене различные виды грунтов для аквариумов от украинских и мировых производителей товаров для аквариумистики. С доставкой и гарантией.
Нужно ее разбить на строки по 800 + символов, а конкретно по месту конца предложения с последующим знаком открытия тега "\.<" И положить в список list
Для разбивки до этого использовали такой код
Код:
string data = project.Variables["inText"].Value;
string[] words = Regex.Split(data, @"<br>");
var list = project.Lists["LIST_ADD_BR"];
foreach (string word in words)
{
    list.Add(word);
}
сейчас же не можем его переписать для нужной конструкции
попробовали использовать такую регулярку
Код:
[\w\W]{800,}?\.<+
но она берет только первую часть, а дальше все удаляет. Ну и само собой что таких частей может быть много
Помогите модернизировать код. Заранее спасибо
 

Kreola

Client
Регистрация
31.07.2015
Сообщения
44
Благодарностей
3
Баллы
8
Сделал, может и не оптимально, но зато работает, возможно кто-то допилит
Код:
string source = project.Variables["inText"].Value;
int counter_data = 0;
string temp = "";
string temp2 = "";
counter_data = source.Count();
double delim = 0;
delim = counter_data / 800 + 1;
delim = Math.Round(delim);
for (int i = 0; i < delim; i++)
{
    string[] words = Regex.Split(source, @"(^[\w\W]{800,}?\.)<+");
    if (words.Length == 3)
    {
        if (words[2].Length > 1)
        {
temp = temp + words[1].ToString() + "===";
temp2 = "<" + words[2].ToString();
Array.Clear(words, 0, words.Length);//очищаем массив
source = temp2;
        }

    }
    else
    {
        temp = temp + words[0].ToString() + "===";
        break;
    }
}
 
  • Спасибо
Реакции: gevolushn

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