|
|
|
|
|
для: nikita2206
(21.08.2010 в 17:08)
| | работает, спасибо. | |
|
|
|
|
|
|
|
для: starpom
(21.08.2010 в 17:00)
| | Зачем обратный слеш?
<?php
preg_match_all("/(?<=\"ad-desc\">).*(?=<\/p>)/s", $content, $text);
/* Первый слеш - обозначает начало регулярки, последний - конец,
после последнего слеша идут модификаторы регулярки
http://yandex.ru/yandsearch?text=preg+modifiers
*/
|
Почитай про эти модификаторы. Модификатор s - точка включает в себя так-же и переносы.
Что-бы не идти дальше первого </p> используй ленивые регулярки.
<?php
preg_match_all("/(?<=\"ad-desc\">).*?<\/p>/s", $content, $text);
|
| |
|
|
|
|
|
|
|
для: nikita2206
(21.08.2010 в 16:50)
| | да , не заметил, попробовал, почти оно , но в таком варианте на тэге </p> скрипт не останавливаеться, а выберает мне еще лишний контент, как его остановить на первом попавшемся тэге абзаца?
И интересно , а почему слеш обычный (НЕ ОБРАТНЫЙ), с обратным кстати не работает, а с этим аж бегом? | |
|
|
|
|
|
|
|
для: starpom
(21.08.2010 в 16:29)
| | > апервый не справляеться с переносом строки
Пробовал? Именно то что я дал, а не свое что-то... Обрати внимание на /s. | |
|
|
|
|
|
|
|
для: nikita2206
(21.08.2010 в 16:24)
| | второй вариант не работает как и мой (а разве точка внутри класса символов не ЛИТЕРАЛ и ее не надо экранировать?), апервый не справляеться с переносом строки | |
|
|
|
|
|
|
|
для: starpom
(21.08.2010 в 16:09)
| |
<?php
// так более верно:
preg_match_all("/(?<=\"ad-desc\">).*(?=<\/p>)/s", $content, $text);
//на худой конец так:
preg_match_all("/(?<=\"ad-desc\">)[.\s]*(?=<\/p>)/", $content, $text);
|
| |
|
|
|
|
|
|
| не могу врубиться, почему не работает точка (все символы) внутри класса символов.
Задача простая, внутри тэгов выбрать весь текст, какой бы он ни был.
<?php
$content = '<p class="ad-desc"> Единственная однокомнатная квартира студио ^*%4#;:<>
однокомнатная </p>';
preg_match_all("/(?<=\"ad-desc\">)[\.\s]*(?=<\/p>)/", $content, $text);
echo "<pre>";
print_r ($text);
echo "<pre>";
?>
|
Я понимаю мне нужна точка и перенос строки, а не работает, побробовал \w и перечесление разных символов работает, но это как то не дело. | |
|
|
|
|