2

使用されているcssルールのみに切り詰めたい巨大なCSSファイルがあります。

これは、Firebug用のCSSUsageAdd -onを使用して行いました。使用されていないすべてのルールに「UNUSED」ラベルを追加します。今、私はこれらを取り除きたいです。

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オンラインサービスを使用して自分の正規表現を見つけようとしましたが、中括弧の間の部分しか選択できませんでした。

これまでの私の正規表現:

\{([^}]+)\}

式を変更して、「未使用」から最後の中括弧までを選択するにはどうすればよいですか?しかし、物事が「未使用」で始まる場合にのみ?他のすべてのルールはマークされるべきではありません。

4

2 に答える 2

4

この正規表現は、UNUSED 属性に一致します。 UNUSED.*\{[^}]*\}|UNUSED.*[}]*

正規表現の最初の部分は、ブロックを含む UNUSED 属性に一致し、正規表現の 2 番目の部分 ( の後|) は、ブロックを含まない 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

h番目

于 2013-03-10T03:41:27.127 に答える