解析しようとしているデータのテスト サンプルを次に示します。
Content1
***
Content2
***
Content3
Content3
***
Content4
***
Content5
***
***
Content6
***
***
***
Content7
つまり、区切り文字列で区切られた新しい行のデータ エントリです。Content1、Content2、Content3\r\nContent3、\r\nContent4、Content5\r\n、Content6、Content7 を取得したい。非常に単純な regex を試し(\r\n)?^\*\*\*$(\r\n)?
ました。RegexBuddy の Split で「^$ 改行で一致」オプションを選択し、.Net フレーバーを選択すると、正しい出力が得られます。ただし、次の C# コード:
string regexPattern = string.Format(@"(\r\n)?^{0}$(\r\n)?", Regex.Escape("***"));
var records = Regex.Split(document, regexPattern, RegexOptions.Multiline);
入力文字列全体を返します。ここでどこが間違っていますか?
また、正規表現(\r\n)?\*\*\*(\r\n)?
(エントリに区切り文字列を含めることができるため、私にはあまり適していません) が Content1、\r\n、\r\n、Content2、\r\n などを返す理由がわかりません。 . \r\n アイテムを貪欲につかむべきではありませんか? RegexBuddy は、この正規表現で正しい出力を提供します。