Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вытащить определенный тег
 
 автор: ipprofi   (14.04.2009 в 17:45)   письмо автору
 
 

Всем привет.

Есть: html вот такого типа:


<td width="683" valign="top" align="left">
<div id="dynamic_box_center">
<div id="box_center_holder2">
<div class="box_breadcrumb">
</div>
<h1>
</h1>
<div id="article_body" style="float: left;">
<noindex>
</noindex>
<div class="article_metadata">
</div>
<div class="font_size">
</div>
<div style="float: left; margin-left: -10px; padding-right: 5px;">
</div>
<noindex>
</noindex>
<div class="image" style="width: 255px; float: left;">
</div>
<index>
</index>
<p class="MsoNormal">«Мы сделаем все необходимое для того, чтобы эти отношения усиливались и были более прочные», - передает «Интерфакс» слова белорусского президента.</p>
<p class="MsoNormal">
............
</p>
<p class="MsoNormal">Глава государства добавил, что в Беларуси «сложилась добрая традиция по контактам президента с нашими основными конфессиями».</p>
<p class="MsoNormal">
............
</p>
<h3>Кондрусевич: все религиозные конфессии должны совместно противостоять современным вызовам и угрозам</h3>
<p class="MsoNormal">
</p>
<p class="MsoNormal">Он также отметил, что в Беларуси диалог между конфессиями развивается успешно. «Важно, что президент Беларуси встречается с нами и обсуждает возникающие вопросы… Государство хочет иметь и развивать хорошие отношения с различными конфессиями, особенно с самыми крупными - католической и православной», - сказал Тадеуш Кондрусевич.</p>
<p class="MsoNormal">Архиепископ добавил, что между государством и Римско-католической церковью есть взаимопонимание.</p>
<p>
............
</p>
<noindex>
............
</noindex>
<noindex>
............
</noindex>
</div>
</div>
<noindex>
............
</noindex>
<noindex>
............
</noindex>
</div>
</td>


Хотелось бы получить Все от <div id="article_body" style="float: left;"> до первого <noindex>.

Использую вот такие выражения:

    preg_match_all('/article_body[^>]+>(.+)<noindex/si',$page['body'],$out);
    ------------------------------------
    preg_match_all('/article_body[^>]+>([^noindex]+)<noindex/si',$page['body'],$out);   


Не выходит =\, я так понимаю второе выражение более ближе к истине, но в квадратных скобках [^noindex] воспринимаются как буквенные символы поотдельности, а не как одно слово.


Помогите решить проблему, в правильном ли направлении думаю, если да, то как реализовать задуманное?

  Ответить  
 
 автор: nikita2206   (14.04.2009 в 21:07)   письмо автору
 
   для: ipprofi   (14.04.2009 в 17:45)
 

preg_match_all('/<div.+?id="article_body".*?>(.+?)<noindex>/si',$page['body'],$out);

  Ответить  
 
 автор: AcidTrash   (14.04.2009 в 21:11)   письмо автору
 
   для: ipprofi   (14.04.2009 в 17:45)
 

Хотелось бы получить Все от <div id="article_body" style="float: left;"> до первого <noindex>.
<div id="article_body" style="float: left;">
<noindex>
Оно то конечно интересно, но только у вас там ничего нет.

Но да ладно, просто измените жадность регулярного выражения.
preg_match_all('/article_body[^>]+>(.+?)<noindex/si',$page['body'],$out); 

Или к своему паттерну добавьте модификатор U.

  Ответить  
 
 автор: ipprofi   (14.04.2009 в 23:56)   письмо автору
 
   для: AcidTrash   (14.04.2009 в 21:11)
 

Спасибо, за помощь, разобрался с жадностью квантификаторов, все получилось, хоть немного и не так, ну это из-за наличия других тегов внутри.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования