Php 删除空白/新行/注释。正则表达式?

Php 删除空白/新行/注释。正则表达式?,php,regex,preg-replace,preg-match,Php,Regex,Preg Replace,Preg Match,我目前正在制作一个CSS缩微器,我认为我试图实现的例子是最简单的解释方式 我试图改变这一点: /* CSS Content */ .class{ text-align:center; border-bottom:1px solid #ccc; } .anotherclass, .another, .another{ text-align:center; border-bottom:1px solid #ccc; } 进入: 因此:删除注释、不必要的空白和新行

我目前正在制作一个CSS缩微器,我认为我试图实现的例子是最简单的解释方式

我试图改变这一点:

/* CSS Content */

.class{
    text-align:center;
    border-bottom:1px solid #ccc;
}

.anotherclass, .another, .another{
    text-align:center;
    border-bottom:1px solid #ccc;
}
进入:

因此:删除注释、不必要的空白和新行

到目前为止,我使用一个表达式和一个函数来删除注释和新行,\n分解字符串,然后追加部分。空格有点难,因为{}中的空格应该被删除,而不是冒号和分号之间的空格

由于我对正则表达式的使用缺乏经验,手头没有好的参考书,谷歌似乎也没有答案:我想知道这里是否有人能帮我创建一个好的正则表达式来实现这一点


提前谢谢

我想你可以试试这样:

(?<=[{};])\s+|\/\*.+?\*\/

清除括号、分号和所有注释前面的空白。

如果必须这样做,则这将缩小您给出的示例:

(/\*[^/]+\*/|^\t*|^\s*|\n|\s+(?=[\{.])|(?<=[\{;])\s+)

它假设您正在使用的正则表达式的风格允许后面的积极外观

在您的示例中,{}中的空格不能保持完整。您正在开发的被称为“minifier”。现有的工具可以实现这一点,您为什么要重新发明轮子?只需搜索CSS迷你程序。这不是regex的用途。使用解析器读取CSS。@EvdTempel我的代码中没有\'

,因此问题可能来自其他地方。这里有一个工作示例:@EvdTempel-Right,我只是让您知道正则表达式在PHP中工作得很好。
(/\*[^/]+\*/|^\t*|^\s*|\n|\s+(?=[\{.])|(?<=[\{;])\s+)