Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 17:35   #1
j3st3r
 
Регистрация: 31.10.2012
Сообщений: 3
Печаль регулярные выражения ( убрать теги)

Здравствуйте.
Проблема в построении регулярного выражения.
Есть входной HTML:



Код HTML:
<a href="http://lenta.ru/rss/" h="ID=SERP,5062.1"> <strong>Lenta</strong>.ru: Новости</a>
<a href="http://lenta.ru/rss/articles/" h="ID=SERP,5078.1"><strong>Lenta</strong>.ru: Статьи</a>
<a href="http://img.lenta.ru/r/EX/import.rss" h="ID=SERP,5093.1"><strong>Lenta</strong>.ru: Новости</a>
<a href="http://img.lenta.ru/r/EX/yandexfull.rss" h="ID=SERP,5108.1"><strong>Lenta</strong>.ru: Новости</a>
<a href="http://www.lenta.com/rss.php?path=news/rss/1" h="ID=SERP,5123.1">Лента новостей</a>
<a href="http://strana.lenta.ru/sec_articles-cat_tajikistan.rss" h="ID=SERP,5138.1">ООО "Лента.Ру" (1999-2012). Лицензия ...</a>
<a href="http://news.404.ru/rss/lenta.ru.rss" h="ID=SERP,5153.1"><strong>Lenta</strong>.ru: Новости</a>
<a href="http://lenta.ge/?feed=comments-rss2" h="ID=SERP,5168.1">Comments for <strong>LENTA</strong>
.GE</a>
Нужно получить список:
Lenta.ru: Новости
Lenta.ru: Статьи
Lenta.ru: Новости
Лента новостей и т.д.

Применяю к HTML "(?<=h=.*?>).*?(?=</a>)" получаю:
<strong>Lenta</strong>.ru: Новости
<strong>Lenta</strong>.ru: Статьи
<strong>Lenta</strong>.ru: Новости
ООО &quot;Лента.Ру&quot; (1999-2012). Лицензия ...
Comments for <strong>LENTA</strong>.GE

Как избавится от strong и &quot;?
Выражение "(?<=h=.*?>)[^<strong>].*?(?=</a>)" удаляет тэги только с начала строки, т.е.:
Lenta</strong>.ru: Новости
Comments for <strong>LENTA</strong>.GE
j3st3r вне форума Ответить с цитированием
Старый 31.10.2012, 17:37   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Наводящая мысль: вам нужен только текст, который находится между ">" и "<", именно в этом порядке

Вроде что-то вроде этого, только переносы строк вам придется отслеживать как-то еще
Код:
string pattern = @"\>(.*?)\<";
Благодарить в репутацию. Проклинать — туда же

Последний раз редактировалось Luuzuk; 31.10.2012 в 17:41.
Luuzuk вне форума Ответить с цитированием
Старый 31.10.2012, 17:47   #3
j3st3r
 
Регистрация: 31.10.2012
Сообщений: 3
По умолчанию

Это заголовки результатов поисковика.
тег strong встречается не везде.
Нужна строка типа [^<strong>]
как написать чтобы он ее фильтровал на всю ширину вхождения, а не только сначала, как в моем варианте?

Последний раз редактировалось j3st3r; 31.10.2012 в 18:01.
j3st3r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярные выражения Sparky Помощь студентам 4 18.04.2012 18:58
регулярные выражения brulik67 PHP 4 24.06.2011 06:14
регулярные выражения Aleksey1408D PHP 5 05.06.2011 07:41
Регулярные выражения Marsik Помощь студентам 4 14.11.2009 14:13
Регулярные выражения AnalogXP Общие вопросы Delphi 0 01.08.2009 23:12