次の例では、Regex.Splitメソッドを用いて、\r\n
, \r
, \n
のいずれかを改行とみなして文字列を行毎に分割しています。
Regex.Splitメソッドでは、区切りの正規表現がグループ化されているか・キャプチャされるグループかどうかによって、区切りの文字列となる文字列も含めて返されるかどうかが変わります。 上記の例において、区切りの正規表現を(\r\n|\r|\n)
のようにカッコで括ってグループ化すると、Regex.Splitメソッドは正規表現にマッチした部分の文字列も含めて返すようになります。 この動作について詳しくは正規表現の構造化および処理(マッチ・グループ・キャプチャ) §.グループ化された正規表現による分割 (Regex.Split)で解説しています。
\r
, \n
, \r\n
が混在する文字列の分割はTextReaderを使うことでも行えます。 例として、StringReaderを使った行分割は次のように行うことができます。
TextReaderを使った行ごとの読み込みに関してはStreamReaderクラス・StreamWriterクラス §.1行ずつの読み込み (ReadLine)、StringReaderについてはStringReaderクラス/StringWriterクラス §.StringReaderクラスで解説しています。