PHP регулярное выражение, чтобы удалить ад префикс поставщика CSS

Я пытаюсь очистить мои документы CSS, чтобы удалить только те строки с префиксом поставщика:

-webkit-......;
-o-.....;
-ms-......;
-khtml-......;
-moz-......;

Как видите, все строки имеют одинаковые шаблоны, оканчивающиеся точкой с запятой, только разных поставщиков. До сих пор я пытался искать один за другим, но должен быть лучший способ добиться этого:

preg_match("/(-webkit.*;)/", $css, $webkit);
$css = str_replace($webkit[1], '', $css);
// ... etc

Любая подсказка будет очень цениться. Спасибо

ОБНОВЛЕНИЕ: причина в том, что я буду использовать http://leaverou.github.com/prefixfree/, но мне нужен способ переключения состояний для определенной фазы разработки, например, когда JS отключен.

2 ответа

Решение

Попробуйте это регулярное выражение /^-.*;?/m соответствует каждой строке, которая начинается с -и возможно иметь ; в конце
обновленный
/^(\s|\t)*-.*;?/mсоответствует любому, что начинается без или более пробелов или табуляции, имеет - после пробела или табуляции и заканчивается ровно одним ;

Попробуй это (-webkit-.*?;)|(-khtml-.*?;)|(-ms-.*?;)|(-moz-.*?;)|(-o-.*?;)

preg_match("/(-webkit-.*?;)|(-khtml-.*?;)|(-ms-.*?;)|(-moz-.*?;)|(-o-.*?;)/", $css, $webkit);
Другие вопросы по тегам