LINUX.ORG.RU

Perl regexp


0

0

Html-файл с содержимым:
<td ...>текст</td>

нужно привести к виду:
1) если нет colspan или rowspan: <td>текст</td>
2) если есть colspan или rowspan: <td colspan="" rowspan="">текст</td>

Так не получается:
$line =~ s|<TD[^>]*(?!SPAN)[^>]*>|<TD>|gis


Ответ на: комментарий от kaj

$ echo '<td width=5 colspan=4 height=10>текст</td>' | perl -ne 's{ <td \s* ((?: (?!colspan) \w+ \s* = \S+ \s* )*) (?: colspan \s* = \s* \S+ \s* )? ((?: (?!colspan) \w+ \s* = \S+ \s* )*) >}{ <td $1 $2> }gixs ; print'

<td width=5 height=10>текст</td>

ну и заменить colspan на регексп тоже

kaj
()
Ответ на: комментарий от kaj

<TD WIDTH=139 HEIGHT=53 ALIGN=CENTER VALIGN=MIDDLE colspan=10>++Вид расхода</TD>

После запуска:
<td WIDTH=139 HEIGHT=53 ALIGN=CENTER VALIGN=MIDDLE > ++Вид расхода</TD>

Хотелось такого:
<TD colspan=10>++Вид расхода</TD>


WinLin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.