Кто хорошо знает регулярные выражения?

masterlelik

Новичок
Кто хорошо знает регулярные выражения?

Не получается сделать такую вот замену, чтобы только параметр таблицы cellspacing оставался

PHP:
$body=preg_replace("/<TABLE.*?cellspacing=\"(\d{1})\".*?>/ims","<TABLE cellpadding=3 cellspacing=\\1 border=0 bgcolor=#000000 width=100%>",$body);
где ошибка?
 

MiksIr

miksir@home:~$
Паттерн верный, работает. Единственное что - \d{1} можно заменить на \d просто, а \\1 рекомендуется заменить на \$1, но это просто стилистика - на работоспособности не отражается.
Ошибка, видимо, в нессоответствии паттерна и документа...
 

masterlelik

Новичок
Автор оригинала: MiksIr
Паттерн верный, работает. Единственное что - \d{1} можно заменить на \d просто, а \\1 рекомендуется заменить на \$1, но это просто стилистика - на работоспособности не отражается.
Ошибка, видимо, в нессоответствии паттерна и документа...
Документ выглядит следующим образом
<table cellspacing="5">
<tbody>
<tr bgcolor="#ebe76e">
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>

Результат возвращает в точности исходный текст, т.е. тег тейбл выглядит как <table cellspacing="5">
 

MiksIr

miksir@home:~$
$body = "<table cellspacing=\"5\">"; $body=preg_replace("/<TABLE.*?cellspacing=\"(\d{1})\".*?>/ims","<TABLE cellpadding=3 cellspacing=\\1 border=0 bgcolor=#000000 width=100%>",$body);
print $body;
Выводит:
<TABLE cellpadding=3 cellspacing=5 border=0 bgcolor=#000000 width=100%>
 

masterlelik

Новичок
Спасибо разобрался. Оказывается в том ХТМЛ куске, что я давал кавычки играли "вредную" роль, пришлось с ними разобраться)))
 
Сверху