Web 系 CSS

【正規表現】CSS のコメント一括削除~複数行や前後の空白の削除にも対応!

02/27/2019
【正規表現】CSS のコメント一括削除~複数行や前後の空白の削除にも対応!-thumbnail-thumbnail 【正規表現】CSS のコメント一括削除~複数行や前後の空白の削除にも対応!-thumbnail-thumbnail

CSS のコメントを削除する正規表現

[\s\t]*/\*/?(\n|[^/]|[^*]/)*\*/

上記の正規表現で、CSS におけるコメントを全て指定することができます!

置換処理で空(から)と置き換えれば、コメントの全削除が可能です。

正規表現の解説

せっかくなので、CSS のコメントを削除する正規表現を分解して、一つ一つ解説したいと思います。

CSSコメント削除~正規表現ブロック分け

正規表現において各記号の示す意味がわからない方は 、正規表現一覧を参照しつつ、御覧ください!

1. [\s\t]*

CSSコメント削除~正規表現ブロック分け

① は、 CSS コメント直前の空白やインデントを指定する正規表現です。

この正規表現を日本語に訳して読むと、「【空白またはタブ】が0個以上 または 何もなし に該当」という意味になります。

CSSコメント削除~正規表現指定箇所1

2. /*/?

CSSコメント削除~正規表現ブロック分け

② は、 CSS コメント開始を意味する /* を指定する正規表現です。

CSSコメント削除~正規表現指定箇所2

「*」(アスタリスク)は特殊記号なので、「\*」のようにバックスラッシュをつけて指定する必要があります。

最後についている「/?」は、「/*」の直後に「/」が書かれている場合に対応するため必要です(上記画像の 17 行目)。

3. (\n|[^/]|[^*]/)*

CSSコメント削除~正規表現ブロック分け

③ は、 コメント内部の文字列を指定する正規表現です。

CSSコメント削除~正規表現指定箇所3

日本語訳は「【改行 または スラッシュ以外 または アスタリスク以外の直後のスラッシュ】が0個以上 に該当」です。

わかりにくいですね!
簡単に言うと、該当対象は「改行」「*/ 以外でのスラッシュ」「その他文字全部」の3種類です。

4. */

④ は、CSS コメント終了を意味する */を指定する正規表現です。

CSSコメント削除~正規表現指定箇所4

まとめ

CSS コメントを削除するには、以下のように記述します!

[\s\t]*/\*/?(\n|[^/]|[^*]/)*\*/

CSS コメントを削除したいときにはぜひ使ってみてください!1


  1. 記事を作ってから思いましたが、CSS コメントを削除したいときなんてそうそうないような……