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

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

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Оформление таблицы с помощью регулярки
 
 автор: max90   (30.03.2013 в 21:09)   письмо автору
 
 

Здравствуйте. Помогите составить регулярку для оформления обычной таблицы.
Вот исходные данные
<table> <tr> <td> &nbsp;<b>RF-101A</b></td> <td> &nbsp;серийный разведывательный вариант на базе F-101A.</td> </tr> <tr> <td> &nbsp;<b>RF-101B</b></td> <td> &nbsp;новое обозначение в ВВС США бывших канадских самолетов CF-101B после их переоборудования в двухместные самолеты-разведчики.</td> </tr> <tr> <td> &nbsp;<b>RF-101C</b></td> <td> &nbsp;разведывательный вариант самолета F-101C, в остальных отношениях аналогичен самолету RF-101A.</td> </tr> <tr> <td> &nbsp;<b>RF-101G</b></td> <td> &nbsp;новое обозначение самолетов F-101А в национальной гвардии США.&nbsp;</td> </tr> <tr> <td> &nbsp;<b>RF-101H</b></td> <td> &nbsp;новое обозначение самолетов F-101С в национальной гвардии США. </td> </tr> </table>
Преобразовать в
<table style="border-collapse: collapse; width: 100%;" cellpadding="0" class="Zebra-2">
    <tbody>
        <tr>
            <td colspan="2" align="center" class="hd">&nbsp;<span style="font-size: 12pt; font-weight: 700;">Модификации</span></td>
        </tr>
        <tr>
            <td class="fcalt">&nbsp;<span style="font-weight: 700;">RF-101A</span></td>
            <td class="alt">&nbsp;серийный разведывательный вариант на базе F-101A.</td>
        </tr>
        <tr>
            <td class="fc">&nbsp;<span style="font-weight: 700;">RF-101B</span></td>
            <td class="">&nbsp;новое обозначение в ВВС США бывших канадских самолетов CF-101B после их переоборудования в двухместные самолеты-разведчики.</td>
        </tr>
        <tr>
            <td class="fcalt">&nbsp;<span style="font-weight: 700;">RF-101C</span></td>
            <td class="alt">&nbsp;разведывательный вариант самолета F-101C, в остальных отношениях аналогичен самолету RF-101A.</td>
        </tr>
        <tr>
            <td class="fc">&nbsp;<span style="font-weight: 700;">RF-101G</span></td>
            <td class="">&nbsp; новое обозначение самолетов F-101А в национальной гвардии США.&nbsp;</td>
        </tr>
        <tr>
            <td class="fcalt">&nbsp;<span style="font-weight: 700;">RF-101H</span></td>
            <td class="alt">&nbsp;новое обозначение самолетов F-101С в национальной гвардии США.</td>
        </tr>
    </tbody>
</table><br />
<br />

Проблема в том, что количество строк может быть различным, а класс у колонок как видно из примера чередуется через одну.

  Ответить  
 
 автор: confirm   (30.03.2013 в 22:12)   письмо автору
 
   для: max90   (30.03.2013 в 21:09)
 

Для этого не требуется регулярок, оформлением занимаются стили, и все что вы тут написали вполне можно описать в CSS.

  Ответить  
 
 автор: max90   (30.03.2013 в 23:31)   письмо автору
 
   для: confirm   (30.03.2013 в 22:12)
 

Не понял Вас. Если прописать в цсс оформление для таблиц, то оно (оформление) будет применено ко всем таблицам, а надо только для определенных. Именно для этого я хочу назначить столбцам определенные классы, уже описанные в цсс.

  Ответить  
 
 автор: confirm   (30.03.2013 в 23:41)   письмо автору
 
   для: max90   (30.03.2013 в 23:31)
 

Не цсс, а css, к тому же это самое css имеет селекторы, по которым можно определиться чего вы хотите оформить. Если уж у вас есть доступ именно к одной таблице, и у вас трудности со множеством, то обычным str_replace() достаточно заменить <table> на <table class=name>, не так ли?
А для того чтобы пометить одни столбы так, а другие иначе, вполне хватит общего стиля и указания стиля для первого столбца, и с этим вполне справится псевдоселкторр first-child, не так ли?

  Ответить  
 
 автор: max90   (31.03.2013 в 00:03)   письмо автору
 
   для: confirm   (30.03.2013 в 23:41)
 

Блин, я вообще забыл про first-child :)
Благодарю за помощь

Upd. Вот нашел более гибкое решение http://htmlbook.ru/css/nth-child

  Ответить  
 
 автор: confirm   (31.03.2013 в 07:17)   письмо автору
 
   для: max90   (31.03.2013 в 00:03)
 

Беда в том, что это возможно только в новых версиях браузеров.

  Ответить  
Rambler's Top100
вверх

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