テキストファイルの改行のみの行を正規表現で置換削除


膨大な文字が含まれたテキストファイルの中から、例えば、改行のみの行を削除したい場合は、1つ1つ改行を消して保存する方法もありますが、文字数が多い場合は大変です。
そんな時は、秀丸エディタやサクラエディタの正規表現による置換機能が便利です。

大体この手のエディタには文字列を検索して置換する機能が付いていますが、オプションの選択欄に「正規表現」が選べるようになっていて、これをチェックすると正規表現による文字列置換ができます。正規表現による検索パターンをうまく指定できれば「すべて置換」で一気に置換することが可能です。

正規表現とは、簡単に言うと色々な文字列の形式を記号を使って特定する表現方法で、さらにそのパターンの連続回数表現や否定表現なども加えることで、複雑なパターンも記号で表現することが可能です。
正規表現について詳しくはこちらを参照。

簡単な例では、以下のような表現を使います。
①任意の一文字  . (ピリオド)
②任意の0文字以上  .* (*は0回以上の繰り返しを表します。)
③任意の1文字以上  .+  (+は1回以上の繰り返しを表します。)
④aかA   [aA] (括弧内の文字のいずれかにマッチします。)
⑤任意のアルファベット1文字  [a-zA-Z]  (括弧内はマイナス記号でFromからToまでの範囲指定が可能)
⑥連続する半角英数文字  [0-9a-zA-Z]+  (+は1回以上の繰り返し)
⑦連続する3文字の半角英数文字  [0-9a-zA-Z]{3}   (大括弧で回数指定も可能)
⑧連続する3~6文字の半角英数文字 [0-9a-zA-Z]{3,6}  (大括弧の中のカンマ区切りで出現回数の最小、最大も指定可能)
といったようにいろいろな文字列パターンを記号で表現することが可能です。
ここに挙げた例はほんの基本で、応用してメールアドレス形式、URL形式、電話番号とハイフン、漢字とアルファベットの区切り、全角・半角スペース、・・・様々な文字列形式をパターンで表現することができます。

改行のみの行はどのように表現するかというと、
1.   ^$
2.   ^\r\n
3.   ^\n  (秀丸ではこれでOKでした。)
のいずれかで表現できます。
1の表現ですが、正規表現では^(ハット記号)は行の先頭を表し、$(ダラー記号)は行の終端を示します。したがって 「^$」 は何も文字のない改行だけの行を表現しています。
2と3は改行を表すエスケープ文字「\r\n」や「\n」を、行頭を表す^(ハット記号)に続けて表記することで改行のみの行を表現しています。\r\nはWindows独自のCL+LFコードによる改行ですね。
まぁ、機種に依存しない一番無難な表現方法は1の「^$」でしょうか。

結論としては、秀丸エディタやサクラエディタなど正規表現による検索をサポートするエディターの検索置換画面を出して、
・置換前の文字に  ^$ を記入
・置換後の文字には何も入力しない
・「正規表現」のオプションをチェックする。
これだけやって「すべて置換」を実行すれば、改行のみの行を削除することが可能です。

カテゴリー: その他

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

カテゴリー