Работа с абзаца в тексте

Статус
В этой теме нельзя размещать новые ответы.
Все верно. Только инструментом еще надо уметь пользоватся, приведенный код не будет работать правильно.

Действительно написал с ошибкой. Спасибо за науку.

Хорошей докой на этот счет не поделетесь? На php.net не смог отыскать подобных тонкстей (может быть смтрю не туда), базовое применение описано, и изысков подобных \K не имеется.
 
В РНР я далёкий начинающий.
Разъясните, пожалуйста.
Регулярное выражение дольше обрабатывает чем стандартная функция или требует бОльшего количества ресурсов?
P.S.
Да, и хорошо, что обратили внимание. После последнего абзаца </p> будет ещё текст.
 
поправил свой вариант

PHP:
$text = preg_replace('#(.+)<p>(.+)</p>(.*)$#sim', '\\1\\3', $text);

однако, предложенный ранее нравится мне больше

Добавлено через 8 минут
Регулярное выражение дольше обрабатывает через стандартная фукнция или требует бОльшего количества ресурсов?

В общем случае это действительно так. За удобство приходится платить.

В часности, в документации php упомиается об этом при описании функции preg_replace, которую рекомендуют заменять на str_replace, если это возможно.
 
без регулярок :D
Код:
$str ="<p>Здесь</p><p>ваш</p><p>текст</p><p>со</p><p>всеми</p><p>абзацами</p>штото там в конце";

$arr = explode('<p>', $str );
$r = array_pop( explode('</p>', array_pop( $arr ) ) ) ;
echo implode('<p>', $arr ).$r;
 
без регулярок :D
Код:
$str ="<p>Здесь</p><p>ваш</p><p>текст</p><p>со</p><p>всеми</p><p>абзацами</p>штото там в конце";

$arr = explode('<p>', $str );
$r = array_pop( explode('</p>', array_pop( $arr ) ) ) ;
echo implode('<p>', $arr ).$r;

Ты думаешь что твой индо-код будет быстрее работать?
 
Действительно написал с ошибкой. Спасибо за науку.
Хорошей докой на этот счет не поделетесь? На php.net не смог отыскать подобных тонкстей (может быть смтрю не туда), базовое применение описано, и изысков подобных \K не имеется.
Ман Для просмотра ссылки Войди или Зарегистрируйся Только имейте ввиду, в актуальной версии PHP не последняя версия PCRE.
Для понимания же общих принципов лучше книги Фридла пока не встречал.
В РНР я далёкий начинающий.
Разъясните, пожалуйста.
Регулярное выражение дольше обрабатывает чем стандартная функция или требует бОльшего количества ресурсов?
P.S.
Да, и хорошо, что обратили внимание. После последнего абзаца </p> будет ещё текст.
Да, в общем случае регулярное выражение работает медленнее. Хотя это не относится к коду вроде приведенного _axl, где срока сначала разбивается на чести, затем склеивается, сдесь может быть наоборот. Зато регулярки быстрее и проще составлять и читать (ГОРАЗДО быстрее и проще).
Просто регулярные выражения, по крайней мере у нас (Россия, Украина, и т.п.) перестали быть обычным инструментом, а стали: "Смотри, как я умею".
Я понимаю, если речь идет о чем то вроде этого, но обсуждаемый случай, как и большинство, тривиальный:D
Код:
{(
\G(?:
    ([а-яa-z]++)|
    [^.\n?!а-яa-z\d("]++(?:[!\?]++)?|
    \.(?:\.*+)
       [^а-яa-z.?!\n]*+(?:\n[^а-яa-z.?!\n]*+)?
       (?=(?-i:[а-яa-z]))|
    (?<=\b[а-юa-z])\.|
    \n[^а-яa-z.?!\n]*+(?=(?-i:[а-яa-z]))|
    \d++(?:\.\d++)?|
    (?:"(?=[^\s.]).*?(?<=[^\s])"|")|
    (?:\((?=[^\s.]).*?(?<=[^\s])\)|\( )
)+
[?!\n.]*
)}isx
 
йопта
и че он хотел этим сказать :D

Сам все делаю на встроенных функциях. preg_match_all завернул в функцию и ей пользуюсь.

И вообще, если парсите чего-нибудь чаще чем в раз месяц, то есть смысл завести свою библиотечку удобных функций для парсинга. Свои функции ближе к телу :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху