こんにちは、さち です。
先日の記事で「Notepad++」での正規表現による検索について触れました。その時は、「複数行にまたぐ文字列を検索する」という内容だったのですが、おまけ(余談)として「改行コード」についても少し書きました。
簡単にまとめると『改行コードって OS ごとに違うから面倒だよね』ということで、最後に「全種類の改行コードをまかなう記述方法もある」ことも書きました。
後日、『全種類の改行をまかなう記述方法ってよく使いそうだし、意外と重要では……?』と思い、改めて備忘録を残すことにしました。それが、この記事です。
「\n」ではすべての改行を選択できない
- 「Windows」と「macOS」の改行コードが入り混じったテキストファイルがあるとします。
- Ctrl + F キーを押して「検索」ウィンドウを開きます。
- ウィンドウ左下にある「検索モード」を「正規表現」にします。
- 検索文字列に正規表現の「\n」を入力し、すべての改行を【改行】に「置換」してみます。
- 結果はこのとおり。「\n」で置換されるのは「LF」のみで、「CR」が残ってしまいました。
ウェブサイトを作っていると「改行 = \n」のイメージが強いですが、PC で扱うテキストファイルはそうではありません。「OS」ごとに異なるので、上記のような結果になるんです。
すべての改行コードをまかなう「\R」
- 先ほどと同じテキストファイルです。
- Ctrl + F キーを押して、「検索」ウィンドウを開きます。
- ウィンドウ左下にある「検索モード」を「正規表現」にします。
- 検索文字列の正規表現を「\R」に変更します。
- 「CRLF」「LF」の両方を置換できました。
「\R」は、「\r\n」「\n」「\r」3種類の改行コードをすべてまかなえる正規表現のメタ文字です。非常に便利なので、ぜひ覚えて使いこなしましょう。
「\R」の「R」は必ず大文字で書きましょう。小文字の「\r」だと改行コード「CR」を意味するメタ文字になってしまいます。
コメント