Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Как обычно. регуляпка.


Автор: wsr 30.4.2006, 15:28
Привет всем. Я конечно понимаю, что раздел PHP: работа с текстовой информацией не только для регулярки, но все же у меня по ней вопрос :
Код

$html = "
%{navigation_start}%
<a href=\"%{link}%\" %{active_link}%>%{name}%</a>
%{navigation_stop}%

Stroka kotoruyu ya ne hochu videt'

%{navigation_start}%
<tr>
    <td>
        <a href=\"%{link}%\" %{active_link}%>%{name}%</a>
    </td>
</tr>
%{navigation_stop}%
";

preg_match ( "РЕГУЛЯРКА", $html, $matches );

В итоге мне нужно получить два значения :
Код
<a href="%{link}%" %{active_link}%>%{name}%</a>

и
Код
<tr>
    <td>
        <a href="%{link}%" %{active_link}%>%{name}%</a>
    </td>
</tr>

Нужна помощь в реализации.
 

Автор: $дмитрий 30.4.2006, 15:46
Код

#<a\s+href=("|'|)(.*?)\\1\s+(.*?)>(.*?)</a>#is
 
не проверял, но суть понятна 

Автор: Mal Hack 30.4.2006, 23:23
wsr, тебе надо вокруг ссылки или между %{navigation_start}% провести поиск. Поясни задачу чуток. От этого зависит решение. 

Автор: wsr 2.5.2006, 19:34
Смотрите, у меня есть два блока, они расположенны между одинаковыми полями (%{navigation_start}% ТУТ то что мне нужно выдрать %{navigation_stop}%)
С одним блоком я справляюсь в легкую, а вот когда их два, то уже нужно модифить регулярку. 

Автор: Mal Hack 2.5.2006, 19:37
preg_match_all и будет тебе счастье. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)