регулярное выражение для вырезания стилей из тэгов

buddy

Новичок
регулярка

помогите, пожалуста, составить регулярку для вырезания, примерно, следующего - style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" из html тегов в тексте. количество параметров в style, можеь меняться.

я сделал, вот как - $str = preg_replace("/style=\".+\"/i", "", $str); - но с этим происходят некоторые глюки, в частности обрезается не только то-что в style, а и за его пределами.
 

buddy

Новичок
спасибо, но я вот как выбрался из ситуации
PHP:
$str = preg_replace("/style=\"[^\"]+\"/i", "", $str);
 

Alexos

Новичок
так тебе вырезать надо или удалить атрибуты style?
что-то я не пойму..
 

гоша

Guest
buddy

надо почитать про нежадные квантификаторы +? *?
 

Alexos

Новичок
надо почитать про нежадные квантификаторы +? *?
не только..
buddy
Твой код работать не будет, если одни атрибуты style будут заключены в одинарные кавычки а другие в двойные..
 

SiMM

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

Alexos

Новичок
SiMM
Кстати, да..
Тогда можно попробовать так:
PHP:
preg_match("/style\=(["']?)(.+)\\1/Ui", $str, $match);
ЗЫ сразу скажу.. не проверял :)

-~{}~ 19.02.04 11:41:

не.. не покатит.. вижу.
может так:
PHP:
preg_match("/style\=(["']?)(.+)\\1\s*/Ui", $str, $match);
?

если нет, то пусть кто-нить подправит :)
 
Сверху