Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

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

Сообщения:  [1-10] 

 
 автор: Чайка   (12.10.2007 в 15:34)   письмо автору
 
   для: kasmanaft   (12.10.2007 в 14:55)
 

Ошромное спасибо kasmanaft у, все заработало корректно! :-)

   
 
 автор: kasmanaft   (12.10.2007 в 14:55)   письмо автору
 
   для: Чайка   (12.10.2007 в 14:07)
 

Потому что "<td.+?> - вовсе не обязательно, что между "<td" и ">" что-то должно присутствовать.." B)
Попробуйте <td.*?>....

   
 
 автор: Чайка   (12.10.2007 в 14:07)   письмо автору
 
   для: SHAman   (12.10.2007 в 11:24)
 

Спасибо за поддержку, второй день озадачен, но пока не под силу

Граблю с помощью preg_match_all

Разложил таблицу на строки так


/<tr.bgColor=white>(.+?)<\/tr>/is


Далее строку пытаюсь разложить на столбцы

Пытаюсь как вы подсказывали так


/<td.+?>(.+?)<\/td>/is


У меня почемуто первые два тега <td> глатает вместе РЕЗУЛЬТАТ получается такой


<TD>48</TD> <TD><A href="http://localhost/primer/scan_html_12_11.php" target=_blank><B style="COLOR: green">Ботово (Волоколамский р-н)</B></A></TD>

<TD align=middle>1-комн.кв.</TD>

<TD align=middle>34м<SUP>2</SUP></TD>




Почему так никак не пойму :-(

   
 
 автор: SHAman   (12.10.2007 в 11:24)   письмо автору
 
   для: kasmanaft   (11.10.2007 в 16:21)
 

Да, извините. Никак не могу привыкнуть к тому, что в пхп для поиска в разных режимах две разные функции...

   
 
 автор: Чайка   (11.10.2007 в 23:19)   письмо автору
 
   для: kasmanaft   (11.10.2007 в 16:21)
 

Спасибо за помощь!

   
 
 автор: kasmanaft   (11.10.2007 в 16:21)   письмо автору
 
   для: Faraon   (11.10.2007 в 14:06)
 

<td.+?> - вовсе не обязательно, что между "<td" и ">" что-то должно присутствовать..

> Unkind, В PHP это вызовет только ошибку.
Ага, тут надо preg_match_all применять.

   
 
 автор: Unkind   (11.10.2007 в 14:52)   письмо автору
 
   для: Faraon   (11.10.2007 в 14:06)
 

> А что это за модификатор g?
Этот модификатор (g - global) присутствует в регулярных выражениях в Perl. Он нужен для нахождения всех соответствий pettern'у. В PHP это вызовет только ошибку.

   
 
 автор: Faraon   (11.10.2007 в 14:06)   письмо автору
 
   для: SHAman   (11.10.2007 в 13:19)
 

А что это за модификатор g ?
Покомпактнее
|<td.+?>(.+?)</td>|is

   
 
 автор: SHAman   (11.10.2007 в 13:19)   письмо автору
 
   для: Чайка   (11.10.2007 в 13:15)
 

что нужно на выходе получить? если все, что внутри td, то как-то так:

/.?<td.*?>(.*?)<\/td>.?/gis

Не проверял.

   
 
 автор: Чайка   (11.10.2007 в 13:15)   письмо автору
 
 

Подскажите кто-нибудь, как написать регулярное выражение для разбора строки таблицы
Html код следующий


<TR bgColor=white>
                <TD>48</TD>
                <TD><A 
                  href="http://localhost/primer/scan_html_12_11.php" 
                  target=_blank><B style="COLOR: green">Ботово (Волоколамский 
                  р-н)</B></A></TD>
                <TD align=middle>1-комн.кв.</TD>
                <TD align=middle>34м<SUP>2</SUP></TD>
                <TD align=middle>17.5м<SUP>2</SUP></TD>
                <TD align=middle>8м<SUP>2</SUP></TD>
                <TD align=middle>17,5</TD>
                <TD align=middle><B>1,060,000р.<BR>(42309$)</B><FONT 
                  color=green><BR>м<SUP>2</SUP>-1,244$</FONT></TD>
                <TD align=middle>3/4<BR>пан</TD>
                <TD>Лифт: нет ; Балкон: 1Л ; <BR>Окна: двор; Санузел: 1С ; 
                  <BR>Телефон: нет; <FONT color=blue>Свободная</FONT></TD>
                <TD>(926)140-1519<BR>(926)580-1114</TD>
                <TD><FONT color=#0000a0>24.06.09 10:21</FONT> <A 
                  href="http://localhost/primer/scan_html_12_11.php" 
                  target=_blank>&lt;частный маклер&gt;</A> <NOINDEX>недалеко от 
                  Волоколамска 15-20 мин , удоб. транс.сообщение,большая лоджия 
                  6м,квартира солнечная, ухоженая(после ремонта,новая 
                  сантехника,газ.плита),горхол вода,со всеми удобствами, рядом 
                  мед.пункт,магазины,остановка, дет.сад, школа,красивый 
                  лес.Чистый воздух,спокойное место.</NOINDEX></TD></TR>

$scan = "|??????????????????|isU";

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования