-1

私は現在、一種の CSS ミニファイアーを作成していますが、私が達成しようとしていることの例を説明するのが最も簡単な方法だと思います。

私はこれを変換しようとしています:

/* CSS Content */

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

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

の中へ:

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

したがってcomments、 、不要なwhitespace、および を削除しnew linesます。

これまでのところ、コメントと改行を削除する必要がありました (1 つの式と で文字列を分解する関数を使用してから\n、パーツを追加します)。内のは削除する必要がありますが、との間は削除しないwhitespacesため、 は少し難しくなります。whitespaces{}colonsemicolon

私は正規表現の使用にまったく慣れていないため、適切な参考書が手元になく、Google も答えを持っていないようです。これを達成するための優れた正規表現を作成するのを手伝ってくれる人がいるかどうか疑問に思っています。

前もって感謝します!

4

2 に答える 2

1

次のようなことを試すことができると思います:

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

http://rubular.com/r/djDtEPzEV0

括弧、セミコロン、およびすべてのコメントの前の空白を消去します。

于 2012-11-21T13:45:59.767 に答える
1

このようにしなければならない場合、これはあなたが与えた例を縮小します:

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

使用している正規表現のフレーバーが肯定的な後読みを許可していると想定しています

于 2012-11-21T13:54:17.747 に答える