|
|
|
| Всем привет.
Есть: 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] воспринимаются как буквенные символы поотдельности, а не как одно слово.
Помогите решить проблему, в правильном ли направлении думаю, если да, то как реализовать задуманное? | |
|
|
|
|
|
|
|
для: ipprofi
(14.04.2009 в 17:45)
| | preg_match_all('/<div.+?id="article_body".*?>(.+?)<noindex>/si',$page['body'],$out); | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: AcidTrash
(14.04.2009 в 21:11)
| | Спасибо, за помощь, разобрался с жадностью квантификаторов, все получилось, хоть немного и не так, ну это из-за наличия других тегов внутри. | |
|
|
|