[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярки
linklink26
Пытаюсь распарсить следующий код


<tr style='background-color: transparent;'>

<td

style="vertical-align:top;padding:3px;;text-align:left;"
nowrap valign="top">
<a
href="/" class="leftbar_selected">zagolovok1</a></td><td style="text-align:right;vertical-align:top;background:transparent;"></td>
<td

style="vertical-align:top;padding:3px;background-repeat:repeat-y;;text-align:left;text-align:left;wid th:60;"
valign="top">
text1.1</td>
<td

style="vertical-align:top;padding:3px;background-repeat:repeat-y;;text-align:left;text-align:left;wid th:60;"
valign="top">
text1.2</td>
</tr>
<tr
style='background-color: transparent;'>
<td

style="vertical-align:top;padding:3px;;text-align:left;"
nowrap valign="top">
<a
href="/" class="leftbar_selected">zagolovok2</a></td><td style="text-align:right;vertical-align:top;background:transparent;"></td>
<td

style="vertical-align:top;padding:3px;background-repeat:repeat-y;;text-align:left;text-align:left;wid th:60;"
valign="top">
text2.1</td>
<td

style="vertical-align:top;padding:3px;background-repeat:repeat-y;;text-align:left;text-align:left;wid th:60;"
valign="top">
text2.2</td>
</tr>




Таким образом


preg_match_all("#<tr[^>]*>(.*)</tr>#", $content2, $out);


Но даже на данном этапе не могу очистить код от tr не говоря уже о том чтобы вытянуть нужные данные, проблема во первых в регулярке, может быть так надо


preg_match_all("#<tr style='background-color: transparent;'>(.*)</tr>#", $content2, $out);


но не работает, и проблема в том что исходный html немного с отступами как в примере и не на одной строчке. А регулярка обрабатывает tr если только завершающие tr находятся на одной строчке.



Спустя 20 минут, 9 секунд (9.08.2012 - 16:42) Hello написал(а):
регулярные выражения не предназначены для html, используйте dom

Спустя 1 час, 11 минут, 31 секунда (9.08.2012 - 17:53) Invis1ble написал(а):
Hello
Цитата
регулярные выражения не предназначены для html

это еще почему?

Спустя 17 часов, 8 минут, 12 секунд (10.08.2012 - 11:01) Hello написал(а):
Цитата (Invis1ble @ 9.08.2012 - 18:53)
Hello
Цитата
регулярные выражения не предназначены для html

это еще почему?

Гвозди можно забивать и кирпичами, но лучше использовать молоток.
http://stackoverflow.com/a/1732454

Спустя 1 минута, 14 секунд (10.08.2012 - 11:03) Игорь_Vasinsky написал(а):
Цитата
Гвозди можно забивать и кирпичами, но лучше использовать молоток.
http://stackoverflow.com/a/1732454

зачем нам пешком идти за хлебом (магазин через дорогу), у нас самолёт есть.

Спустя 12 минут, 13 секунд (10.08.2012 - 11:15) killer8080 написал(а):
Цитата (linklink26 @ 9.08.2012 - 17:22)
А регулярка обрабатывает tr если только завершающие tr находятся на одной строчке.

для этого есть модификатор s, с ним мета символ "точка" будет захватывать все, в том числе и символы перевода строки.
Хотя тут надо еще и жадность отключать - модификатор U.

Спустя 45 минут, 3 секунды (10.08.2012 - 12:00) Invis1ble написал(а):
Hello
"лучше использовать" и "не предназначены" не одно и то же
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.