2

我有一个巨大的 CSS 文件,我想将其缩减为仅使用的 CSS 规则。

我通过使用CSS Usage Add-on for Firebug 做到了这一点。它为每个未使用的规则添加一个“未使用”标签。现在我想摆脱这些。

CSS 代码如下所示:

body {
line-height: 1;
text-align: left;
}
UNUSED.multiple-list {
font-weight: bold;
line-height: 1.4;
list-style: disc;
margin-left: 20px
}

UNUSEDmenu, UNUSEDol, ul {
list-style: none
}
UNUSEDblockquote, UNUSEDq {
quotes: none
}

我尝试使用 RegExr 在线服务找到我自己的 Regex,但我只能选择大括号之间的部分。

到目前为止我的正则表达式:

\{([^}]+)\}

如何修改表达式以选择从“未使用”到右花括号的任何内容?但只有事情以“未使用”开头?不应标记所有其他规则。

4

2 回答 2

4

此 Regex 将匹配任何 UNUSED 属性: UNUSED.*\{[^}]*\}|UNUSED.*[}]*

正则表达式的第一部分匹配任何包含块的 UNUSED 属性,而正则表达式的第二部分(在 之后|)匹配任何不包含块的 UNUSED 属性 - 所以你完全被覆盖了。它将匹配类、id、块、单行——每个 UNUSED 属性。

正则表达式测试


* jdlx 的正则表达式稍微复杂一些,但更好更安全。看看它。

于 2012-08-11T23:04:31.643 回答
2

上面amiregelz的正则表达式将匹配具有有效选择器的规则.. 从而破坏 CSS。
这是关于正则表达式的 my2¢:

第 1 步 -仅将整个规则与未使用的选择器匹配并删除整个规则:

(?<=}|/)\s*(UNUSED[.#:<>\+\w\d\s_-]+)(,\s*UNUSED[.#:<>\+\w\d\s_-]+)*\{[^\}]+}

第 2 步 -在具有有效/使用选择的规则上匹配所有未使用的选择器:

(UNUSED[.#:<>\+\w\d\s_-]+,\s)|(,\s*UNUSED[.#:<>\+\w\d\s_-]+)

RegExr 测试:第 1步-第 2 步

hth

于 2013-03-10T03:41:27.127 回答