php正则表达式删除CSS供应商前缀地狱

时间:2012-09-12 05:47:16

标签: php prefixfree

我正在尝试清理我的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 个答案:

答案 0 :(得分:3)

试试这个(-webkit-.*?;)|(-khtml-.*?;)|(-ms-.*?;)|(-moz-.*?;)|(-o-.*?;)

preg_match("/(-webkit-.*?;)|(-khtml-.*?;)|(-ms-.*?;)|(-moz-.*?;)|(-o-.*?;)/", $css, $webkit);

答案 1 :(得分:2)

尝试此正则表达式/^-.*;?/m匹配以-开头的每一行,最后可能会有一个;
更新
/^(\s|\t)*-.*;?/m 匹配以没有或更多空格或制表符开头的任何内容,在空白或制表符之后-,并且只有一个;

结尾