Сниппет на взятие слов из текста с последующим удалением

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
Привет, задача такая. У нас есть текст.
Как пример, первый попавшийся что нашел

Код:
<p>Капуста на зиму в банках - одна из самых распространенных вариаций заготовок, которая пользуется популярностью среди хозяек благодаря своему отменному вкусу и пользе для организма. В капусте содержится очень большое количество витамина С и минеральных веществ, которые сохраняются в консервациях на протяжении длительного времени практически в неизменном виде, а это значит, что, приготовив такую закуску, за здоровье домочадцев можно не беспокоиться. Кроме того, капуста на зиму в банках - продукт низкокалорийный и диетический, поэтому идеально подходит для тех, кто следит за фигурой и придерживается здорового питания. Но еще в большей степени привлекательным является восхитительный вкус этой заготовки - похрустеть сочной капусткой не откажутся ни взрослые, ни дети. А если законсервировать ее вместе с болгарским перцем и свеклой, то тут и вовсе за уши не оттащишь!</p>
<p>Капуста на зиму в банках хороша тем, что это не только чудесная самостоятельная закуска, но и замечательное дополнение к самым разнообразных блюдам, таким как овощные супы, щи, солянка, салаты, винегреты, запеканки, вареники, пироги и пирожки. Консервированную капусту по праву можно назвать универсальным продуктом - она и разнообразит обычную трапезу, и станет незаменимым компонентом на праздничном столе. Популярность данных заготовок обусловлена и тем, что они получаются весьма бюджетными и экономными, а это сегодня весьма немаловажно. Все перечисленные достоинства делают консервации из капусты такими любимыми и желанными людьми всех возрастов. Но как же готовить капусту? Сейчас узнаем!</p>
</p>
<p>Капуста на зиму в банках может быть квашеной, маринованной или малосольной. Чаще всего капуста готовится с добавлением уксуса - столового, яблочного или винного. Уксус при этом может быть с успехом заменен лимонным соком или лимонной кислотой, что сделает капусту более подходящей для употребления детьми. Капуста готовится в деревянных бочках, стеклянных банках или эмалированной посуде, после чего хранится в прохладном месте (в холодильнике или погребе) весьма продолжительное время. Решив заготовить капусту впрок, лучше всего остановить свой выбор на сортах капусты больших размеров среднего или позднего сроков созревания. Неизменным спутником капусты в заготовках является морковь, но при желании в консервации могут быть добавлены болгарский перец, свекла, лук, яблоки, груши, сливы, тертый хрен или клюква. Классический маринад для капусты готовится из воды или растительного масла с добавлением уксуса, сахара и соли, а вот придать пряный привкус и ароматные нотки итоговому продукту помогут лавровый лист, гвоздика, душистый перец, черный перец горошком, кориандр, чеснок, семена укропа, перец чили, петрушка или укроп.</p>
</p>
<p>Капуста на зиму в банках готовится очень быстро и легко, радуя своим неповторимым вкусом целый год - убедитесь в этом, воспользовавшись нашими рецептами!</p>
<p><b>Квашеная капуста на зиму</b></p>
<p><i><b>Ингредиенты:</b></i><br />
1 большой кочан капусты<br />
3 моркови<br />
1 л воды<br />
50 г соли<br />
50 г сахара<br />
50 мл 9%-ного уксуса</p>
<p><i><b>Приготовление:</b></i></p>
<p>Налить в кастрюлю воду, добавить сахар, соль и уксус. Довести до кипения, после чего остудить в течение получаса. В большой миске или тазу смешать нашинкованную капусту и натертую на крупной терке морковь. Разложить овощную смесь по стерилизованным банкам, плотно утрамбовывая. Влить рассол и накрыть крышками. Оставить банки при комнатной температуре на 2-3 дня, чтобы капуста заквасилась. Простерилизовать банки в кастрюле с водой - трехлитровые банки следует стерилизовать полчаса, литровым будет достаточно 15 минут. После этого закатать банки стерилизованными крышками, перевернуть вверх дном, укутать теплым одеялом и остудить.</p>
</p>
<p><b>Маринованная капуста без стерилизации</b></p>
<p><i><b>Ингредиенты:</b></i><br />
3 кг капусты<br />
5 морковок<br />
1 луковица<br />
2 л воды<br />
150 мл 9%-ного уксуса<br />
2 столовые ложки соли<br />
лавровый лист, черный перец горошком и душистый перец по вкусу</p>
<p><i><b>Приготовление:</b></i><br />
Капусту нашинковать, морковь натереть на крупной терке, лук нарезать кусочками. Подготовленные овощи поместить в большую миску и хорошо перемешать. Выложить специи в большую миску, сверху выложить овощную смесь и залить кипятком. Дать постоять 10 минут, после чего слить воду. Для приготовления рассола добавить в воду соль, уксус и лавровый лист. Довести до кипения. Капусту разложить по стерилизованным банкам и влить горячий рассол. Закатать стерилизованными крышками, перевернуть вверх дном и дать остыть под теплым одеялом, после чего убрать на хранение.</p>
<p><b>Малосольная капуста быстрого приготовления с чесноком</b></p>
<p><i><b>Ингредиенты:</b></i><br />
2 кг капусты<br />
3 моркови<br />
1 головка чеснока<br />
500 мл воды<br />
1/2 стакана сахара<br />
1/2 стакана 9%-ного уксуса<br />
2 столовые ложки соли</p>
<p><i><b>Приготовление:</b></i><br />
Перемешать нашинкованную морковь, тертую на крупной терке морковь и измельченный чеснок (чеснок можно мелко нарубить или пропустить через пресс). Распределить смесь по банкам. Для приготовления рассола развести в воде сахар, соль и уксус. Довести до кипения и залить капусту. Закатать банки крышками и остудить. Капусту можно пробовать уже через 3 дня.</p>
</p>
<p><b>Капуста, маринованная кусками со свеклой</b></p>
<p><i><b>Ингредиенты:</b></i><br />
2 кочана капуста<br />
2 свеклы<br />
8 зубчиков чеснока<br />
3 л воды<br />
3/4 стакана сахара <br />
3/4 стакана соли<br />
1 чайная ложка 70%-ного уксуса<br />
лавровый лист, горошины душистого перца и семена укропа по вкусу</p>
<p><i><b>Приготовление:</b></i><br />
Капусту нарезать большими кусками (примерно 8-10 кусков), свеклу нарезать кружочками. На дно двух трехлитровых банок положить по 4 зубчика чеснока и специи по вкусу. Выложить ломтики свеклы и добавить кусочки капусты. Для приготовления маринада добавить в воду сахар, соль и уксус, довести до кипения. Залить полученным маринадом капусту со свеклой, закатать банки крышками и остудить, перевернув вверх дном.</p>
<p><b>Маринованная капуста с болгарским перцем</b></p>
<p><i><b>Ингредиенты:</b></i><br />
1 кочан капусты среднего размера<br />
1 луковица<br />
1 болгарский перец<br />
1 стакан растительного масла<br />
50 г соли<br />
50 г сахара<br />
1 столовая ложка 70%-ного уксуса<br />
горошины черного перца и семена укропа по вкусу</p>
<p><i><b>Приготовление:</b></i><br />
Капусту нашинковать, перец нарезать тонкими полосками, а лук - полукольцами. Все овощи перемешать в большой емкости. Слегка подогреть масло и добавить в него соль, сахар, перец и семена укропа. Залить полученной смесью овощи и оставить под прессом на 1-2 часа. Развести уксус в 100 мл кипяченой воды, залить овощи и перемешать. Выложить овощи в стерилизованные банки и закрыть капроновыми крышками.</p>
</p>
<p><b>Маринованная капуста с яблоками</b></p>
<p><i><b>Ингредиенты:</b></i><br />
1 кг капусты<br />
5 кислых яблок (например, сорта Антоновка)<br />
1 большая морковь<br />
1 л воды<br />
3 столовые ложки 9%-ного уксуса<br />
2 столовые ложки соли<br />
2 столовые ложки сахара<br />
10 горошин черного перца<br />
4 горошины душистого перца<br />
4 лавровых листа</p>
<p><i><b>Приготовление:</b></i><br />
Капусту нашинковать, морковь натереть на крупной терке, яблоки нарезать, удалив сердцевину. Перемешать все компоненты в емкости. Чтобы приготовить маринад, в воду добавить соль, сахар и специи. Довести до кипения и дать остыть. Добавить в маринад уксус и залить капусту с яблоками. Перемешать, утрамбовать, накрыть марлей и поставить под гнет на 3 дня при комнатной температуре, ежедневно протыкая смесь деревянной палочкой для выхода углекислоты. Разложить заготовки по банкам, закрыть крышками и убрать на хранение.</p>
<p>Благодаря тому, что при термической обработке капуста на зиму в банках не теряет своих полезных свойств, данная заготовка - это настоящая кладезь витаминов и минералов в холодное время года. Поэтому не откладывайте дело в долгий ящик и позаботьтесь о здоровье своей семьи прямо сейчас! Удачных вам заготовок!</p>
нужно брать слова, поочередно, чтобы количество взятых слов не превышало 2500 символов и удалять из исходного текста, чтобы не брать их второй раз.
И очень важно, не обрезать, то есть если количество превышено, то надо взять меньше до точки или до закрывающих тегов.

Общий смысл такой, чтобы текст разбить на 3-4-5 кусков, и чтобы не терялся смысл в самих кусках текста.
Не могу придумать как это осуществить
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
Возможно ли брать некое количество слов, сниппетом, удаляя их при этом из текста? Чтобы общее количество не превышало например 2000 символов?
или
Брать по несколько фраз, например взять все слова до 3й точки?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113

orka13

Client
Регистрация
07.05.2015
Сообщения
2 167
Благодарностей
2 168
Баллы
113
нужно брать слова, поочередно, чтобы количество взятых слов не превышало 2500 символов и удалять из исходного текста, чтобы не брать их второй раз. И очень важно, не обрезать, то есть если количество превышено, то надо взять меньше до точки или до закрывающих тегов.
Вырезаешь вот такими кусочками:
Код:
^[\w\W]{0,2000}(([.!?])|(\<[^\<\>\r\n]*\/[^\<\>\r\n]*\>))
Если теги мешают, то их можно легко подчистить через C#, оставив чистый текст.
 
  • Спасибо
Реакции: backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
Почти то что надо, не хватает удаления взятого куска текста из исходного, можно это как-то реализовать?
Или исходный текст просто забить на такие куски, а эти куски добавить в список поочередно?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 167
Благодарностей
2 168
Баллы
113
Хз какой алгоритм оптимальнее. Метотд в лоб:
1. Ищем через кубик поиска этот кусок (оно найдет в начале документа) в переменную.
2. Если переменная непустая, то добавляем ее в список.
3. Заменяем в тексте этот кусок на пустоту (удаляем) через кубик.
4. Возвращаемся к шагу №1 в цикле. И так пока переменная не будет пустая (нет результатов).
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
да, сам алгоритм мне понятен, но нет нужного кубика
3. Заменяем в тексте этот кусок на пустоту (удаляем) через кубик.
есть ли код для этого кубика, чтобы текст удалить?

или просто через замену сделать?
добавлено: просто замена не работает, проверил
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Удаляй по регулярке
 
  • Спасибо
Реакции: backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113

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