0

正規表現のヘルプが必要です。

Firefox の firebug 拡張機能「css-usage」を使用して、ページで参照されていないすべてのクラスにユーティリティが「UNUSED」を追加した新しい css ファイルをエクスポートできました。

UNUSED スタイルを含むすべてのスタイルを削除したいと思いますが、それにはいくつかの複雑さが伴います。つまり、一部のタグは、まだ使用されている可能性のある他のタグ/セレクターとコンマで区切られているため、コンマが含まれる行を削除したくありません。次に、一部のスタイルは中括弧で囲まれた長い複数行のブロックで指定されているため、右中括弧 '}' を持たない行は削除したくありません。

私は Mac を使用しているので、SED、AWk、または vi を使用したソリューションはすべて受け入れられます。「UNUSED」で始まり、カンマを含まず、閉じ中括弧「}」が必要な css ファイル内のすべての行を削除したいと考えています。

4

3 に答える 3

0

文字をキャプチャしたりポインターを前方に移動したりせずに、文字列に文字が含まれているかどうかをテストするには、先読みを使用します。

(?=.*[,])

または、文字列にその文字が含まれていないことを確認するには、否定先読みを使用します。

(?!.*[,])

文字列に文字が含まれておらず、他の文字が含まれていることを確認したい場合は、否定と肯定の先読みを組み合わせることができます。

(?!.*[,])(?=.*[}])(?=.*UNUSED)

最後に、この一致が発生した文字列全体を実際に選択するには、先読みの後に .* を使用します。

^(?!.*[,])(?=.*[}])(?=.*UNUSED).*$

私はほとんど .NET に精通していますが、多くの正規表現エンジンには、入力文字列全体の先頭/末尾または行の先頭/末尾に一致するかどうか^を指定できるオプションがあると思います。$2番目のオプションが必要です。

最後に、正規表現の置換を使用して、指定された式に一致する行を空の文字列に置き換えることができます (したがって、それらの行を「削除」します)。

于 2012-10-16T20:26:56.273 に答える
0

カンマなしで一致UNUSEDし、末尾が であることを確認するには}:

UNUSED [^,]*}
于 2012-10-16T20:28:23.710 に答える
0

正規表現パターンを使用

^UNUSED[^,]*}[^,]*$

複数行修飾子付き。

于 2012-10-16T20:30:25.177 に答える