2020.1.10

ファイルの行頭から続く不要な文字(半角スペース、タブ、改行など)を削除する方法

Webサイトで静的なHTMLページを用意する際、開発時はインデントがあった方が分かりやすくていいですが、本番運用ではストレージやネットワークの負荷を考えて、行頭の半角スペースや改行を削除して配置した方が効率的です。

コード

以下、簡単な例になります。


var filePath = @"c:\temp\sample.html";

var str = File.ReadAllText(filePath);

str = Regex.Replace(str, @"^[ \t\r\n]+", "");

File.WriteAllText(filePath, str);

保存済みのファイルを読み込んで、置き換えたい文字(行頭から続く半角スペース、タブ、改行)を正規表現を使って変換し、最終的にファイルを上書き保存しています。

オリジナルのファイルを上書きしたくない場合は、ファイル名などを変更してください。

上記の対応をすることで、私の場合、ファイルサイズが半分くらい減りました。

注意点

注意点として、HTMLの<pre>タグ内の文字も変換されると、表示内容が変わってしまうので、使っている場合は、正規表現のパターンを見直してください。


str = Regex.Replace(str, @"^[ \t\r\n]+<", "");

完全な対応はできませんでしたが、上記のような変換パターンであれば、ある程度は網羅できます。

C#】関連記事