コンピュータ上で改行を表す場合はキャリッジリターン(CR)やラインフィード(LF)、またはこれらの組み合わせなどの制御文字と呼ばれる特殊な文字が使用されています。
しかし、テキストファイルにどの改行コードが使用されているのかは端末の種類やアプリケーションにより異なることがあるので注意が必要です。
今回は、正規表現で改行を指定する場合の方法について説明します。
改行を表す正規表現
正規表現ではキャリッジリターン(CR:ASCIIコード0x0d)は \r、ラインフィード(LF:ASCIIコード0x0a)は \n と記述します。
主にApple系の端末ではCRが、UNIX系の端末ではLFが標準的な改行コードとして使用されています。また、Windows系の端末で改行を表現する場合は、これらを組み合わせたCR+LFが用いられているので、改行とマッチングを行う場合には \r\n と記述します。
OS | 改行コード | 正規表現 |
Mac | CR | \r |
Unix | LF | \n |
Windows | CR+LF | \r\n |
すべての改行コードに対応した正規表現
テキストファイルの改行コードは使用環境により異なる場合があるので、改行に該当する組み合わせをすべて検索対象としてしまうという方法もあります。
CR・LF・CR+LFをすべて検索する場合は \r\n|\n|\r と記述しましょう。
まとめ
テキストデータにおける改行コードはすべて同じように思えますが、実は使用している端末により様々な種類があります。特にネットワークでファイルのやり取りをしているとどのような改行コードが使用されているかわからなくなるケースが多いのです。
この点を踏まえて正しい改行コードでマッチングを行うようにしてください。