Как с помощью регулярных выражений в php вывести первых 2,3 параграфа из текста?

программирование php регулярные выражения

<?php
$str = '<p>Это первый...</p><p>Это второй...</p><p>Это третий...</p><p>Это четвертый...</p>';
preg_match('/<p>(.*)<\/p>/s', $str, $r);
echo $r[0];
?>
С выводом всех параграфов разобрался, а вот как вывечти только 1,2,3 параграфа?

Примечание:
и причем тут preg_match_all если выше написанное мною итак выводит все параграфы?
мне нужно только один или 2 первых параграфа вывести

Примечание:
Как вывести например первых 2 предложения из 3 - раборался. А вот с выводом по тегам нет :(
$str = 'Один. Два? Три!';
preg_match( '/(.*?[.!?]){1,2}/', $str, $r );
echo $r[ 0 ];

Примечание:
Нужно например вывести первых 2-а прараграфа из 3-х в тексте!

Примечание:
С выводом в цикле разобрался. А вот как правильно оформить выражение, чтоб искались все символы в нутри тегов - не получается :( Например в первом параграфе ссылка изображения с атрибутами, а во втором текст с кавычками, запятой и тд... Помогите пожайлуста.

Примечание:
Получилось с помощью /(<p>(.*?)<\/p>)/ Правильно ли это? Или есть другие варианты?

Примечание:
Спс, но
preg_match('/(<p>.*<\/p>){4}/', $str, $r);
echo $r[1];
такой вариант не работат в моем случае, я его изначально пробовал по аналогии с токами (Дополнение #2 01.12.2009 21:54:50).
Ответы:
preg_match_all
Не совсем понял вопрос, + не знаю PHP но помоему функция preg_match записует результаты "вхождений" в массив $r
если вам надо выводить только первые два, то создайте цикл на две итерации и выводите нулевой и первый элементы массива. вот вам и будет первый и второй абзац.
preg_match('/(<p>.*<\/p>){4}/', $str, $r);
echo $r[1];
//Вывод будет типа <p>qwerty1</p><p>qwerty2</p><p>qwerty3</p><p>qwerty4</p>
ijn правильно пишет.
Потом только не echo,
а print $r1 - первый абзац (первое вхождение) потом второе и третье.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.