ITメモ
Make SiteMap 正規表現 / Regular Expression




正規表現の記号コード「改行編」



正規表現で、改行の指定がうまくいかない時のメモ。
同じ改行でも、使用しているOSによって、「改行コード」の記述は異なる。
正規表現を利用していて、必ず必要になってくるのが改行。
OSが「Windows」か「Mac」によって、入力するコードが変わってくる。


OS別改行コード

改行コードOS
\n(LF)Unix系OS全般、Mac OS X
\r\n(CR+LF)Windows系OS
\r(CR)古いMac OS(9以前)

「\r」はCR文字(Carriage Return)、「\n」はLF文字(Line Feed)と呼ばれる制御文字。
「\r」はCR文字(Carriage Return) = CRが印字装置を左端に戻す動作
「\n」はLF文字(Line Feed) = LFが紙を1行分スクロールする動作
という意味があるらしい。


正規表現での検索・置換をする場合には、「\n」と入力すると、「Windows」では改行前の検索ができないことがある。
「Windows」では、改行前の行を正常に検索するには「\r\n」と「Windows」の改行コードを入力する。
「\n」だけだと改行はされるが、カーソルが左へ戻らないので、改行前の検索が行末から始まることになるので、 「\n」だけでは正規表現検索ができない。
Windowsでの正規表現検索では、「\r」が必須。


「Mac」と「Windows」での改行コードの違い

入力コード Windows Mac
\n ×
¥n ×
Windowsでは、「¥」マークで改行の正規表現を入力しても問題はないが、 「Mac」では、改行の正規表現は「¥」マークではなく、「バックスラッシュ(\)」を使う。
「¥」マークで記述しても、「Mac」では正規表現として扱ってくれない。


\(バックスラッシュ)記号の入力方法

OS 入力方法
Mac 「Option」+「¥」
Windows (半角入力モード)で「\(ろ)」ボタンを押す。





余談

Web上で、「\(バックスラッシュ)」をブラウザで表示しようとすると「¥(円マーク)」になってしまう。
この場合は、「バックスラッシュ」を表示してくれるフォントを指定して、Web上に「バックスラッシュ」を表示させる。

\(バックスラッシュ)」として表示させたい場合は、
<span style="font-family: Arial;">\</span>

とバックスラッシュとしてきちんと表示してくれるフォントを指定する必要がある。
もしくは、半角ではなく、全角で「\(バックスラッシュ)」と入力すると表示されるとのこと。
「&#92;」という文字コードも「\(バックスラッシュ)」らしいのだが、ブラウザでは、「¥」マークとして表示されてしまう。