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


Автор: sir_nuf_nuf 6.9.2009, 23:08
Эх.. дайте - ка и я развлеку форумчан нубским вопросом.

Ситуевина: есть html с таблицами в нем. Таблицы не могут быть вложенными, т.е. внутри одной другой быть не может.
Задача с помощью регулярки повесить class="bubu_last" на правую верхнуюю ячейку в таблице. Т.е. первая строка - последний столбец.

Интуитивно понимаю, что мощнее регулярок в перле, только удар Чака Норрис ногой с разворота, но.. что-то  в пятницу не осилил эту задачку.


Автор: KSURi 7.9.2009, 11:08
Не самое оптимально решение, но, вроде, работает)
Код

#!/usr/bin/env perl

use Modern::Perl;

my $html = do { local $/ = <DATA> };
$html =~ s{</td>\n*<td>(.+?</td>\n*</tr>)}{</td>\n<td class="bubu_last">$1}sg;
say $html;

__DATA__
<html>
<head>
<title>hello</title>
</head>
<body>
<table>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
</body>
</html>

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