4

我正在尝试清理我的 CSS 文档以仅删除那些以供应商为前缀的行:

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

如您所见,所有行都有相同的模式,以分号结尾,只是不同的供应商。到目前为止,我尝试一一搜索,但应该有更好的方法来实现这一点:

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

任何提示将不胜感激。谢谢

更新:原因是我将使用http://leaverou.github.com/prefixfree/,但我需要一种方法来切换某些开发阶段的状态,例如禁用 JS 时。

4

2 回答 2

3

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

preg_match("/(-webkit-.*?;)|(-khtml-.*?;)|(-ms-.*?;)|(-moz-.*?;)|(-o-.*?;)/", $css, $webkit);
于 2012-09-12T05:53:24.120 回答
3

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

于 2012-09-12T06:00:58.987 回答