web-dev-qa-db-ja.com

クロスプラットフォームの改行文字に一致する正規表現

私のプログラムは、改行文字が\ n、\ r\n、または\ r(例:Unix、PC、またはMacスタイル)のデータを受け入れることができます。

エンコーディングが何であっても一致する正規表現を構築する最良の方法は何ですか?

あるいは、入力にuniversal_newlineサポートを使用することもできますが、今は正規表現がどうなるかを知りたいです。

54
Alan

正確にしたいときに使用する正規表現は"\r\n?|\n"

一貫性や空の行が気にならない場合は、"[\r\n]+"、私はそれが私のプログラムを0.2%のオーダーでどこか速くすることを想像します。

82
too much php

古いMacスタイル(OS 9は2002年2月以降サポートされていない)に対処する必要がないため、パターンを\r?\nに簡略化してパフォーマンスを少し向上させることができます。

7
Diego V