Реклама на сайте Advertise with us

Регулярные выражения PHP

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 12.06.04
Сообщения: 122

Ссылка на сообщениеДобавлено: 30/10/09 в 01:08       Ответить с цитатойцитата 

Помогите разобраться с регулярными выражениями на PHP. Есть html код:
Код:
<table>
   <tr class=1><td class=2>раздел 1</td></tr>
   <tr><td>текст 1&nbsp;<a href>текст ссылки</a></td></tr>
   <tr><td>текст 2&nbsp;</td></tr>
   <tr class=1><td class=2>раздел 2</td></tr>
   <tr><td>текст 1&nbsp;</td></tr>
   <tr><td>текст 2&nbsp;</td></tr>
</table>

Задача - вырезать блоки:
Код:
   <tr class=1><td class=2>раздел 1</td></tr>
   <tr><td>текст 1&nbsp;<a href>текст ссылки</a></td></tr>
   <tr><td>текст 2&nbsp;</td></tr>

Код:
   <tr class=1><td class=2>раздел 2</td></tr>
   <tr><td>текст 1&nbsp;</td></tr>
   <tr><td>текст 2&nbsp;</td></tr>

Помоги составить правильно выражение.

0
 



С нами с 07.08.06
Сообщения: 190
Рейтинг: 165

Ссылка на сообщениеДобавлено: 30/10/09 в 01:38       Ответить с цитатойцитата 

Код:
<tr[^>]?(.*)<\/tr>

3
 



С нами с 13.08.08
Сообщения: 1538
Рейтинг: 1011

Ссылка на сообщениеДобавлено: 09/11/09 в 22:31       Ответить с цитатойцитата 

Блоки по три ряда вырезать надо? Вот выражение:

Код:
#(?:<tr(?:\s+[^>]*)?>.*?</tr>){3}#is


Не забудь модификатор s, иначе всякие там переносы строк за точку считать не будет.

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 10/11/09 в 06:19       Ответить с цитатойцитата 

пример, сильно абстрактный, зацепиться не за что
в общем виде для данного случая:

Код:
$html = '<table>
   <tr class=1><td class=2>раздел 1</td></tr>
   <tr><td>текст 1&nbsp;<a href>текст ссылки</a></td></tr>
   <tr><td>текст 2&nbsp;</td></tr>
   <tr class=1><td class=2>раздел 2</td></tr>
   <tr><td>текст 1&nbsp;</td></tr>
   <tr><td>текст 2&nbsp;</td></tr>
</table>';

  preg_match( '%((?:<tr.*(?=tr>)tr>[^<]*){3})[^<]*((?:<tr.*(?=tr>)tr>[^<]*){3})%isU', $html, $match );

  echo '<pre>';
  /**
  * в $match[1] и $match[2],
  * соответсвенно искомые части
  **/
  print_r( $match );
  echo '</pre>';

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »