【问题标题】:Regex to match any "UNUSED" rules in CSS (class, id, etc)正则表达式匹配 CSS 中的任何“未使用”规则(类、id 等)
【发布时间】:2012-08-11 22:36:50
【问题描述】:

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

我通过使用 CSS Usage Add-on 为 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 在线服务查找我自己的正则表达式,但我只能选择大括号之间的部分。

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

\{([^}]+)\}

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

【问题讨论】:

    标签: css regex code-cleanup


    【解决方案1】:

    此正则表达式将匹配任何 UNUSED 属性: UNUSED.*\{[^}]*\}|UNUSED.*[}]*

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

    RegExr test


    * jdlx's regex 有点复杂,但更好更安全。看看吧。

    【讨论】:

    • 太棒了。非常感谢。现在事情对我来说也开始变得更清楚了;)注意:您需要启用“全局”但禁用“dotall”才能使其正常工作。
    【解决方案2】:

    amiregelz 的正则表达式 above 将匹配规则与 valid 选择器.. 从而破坏 CSS。
    这是 my2¢ 正则表达式:

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

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

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

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

    RegExr 测试:Step 1 - Step 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多