これが私の正規表現です:Regex r = new Regex("start(.*?)end", RegexOptions.Multiline);
"start"
つまり、との間で情報を取得したいということです"end"
。ただし、問題は、開始と終了の間に改行があるか\n
、正規表現が何も返さないことです。
では、どうすれば正規表現を検索できます\n
か?
Multiline
正しいオプションの1つであるように、オプションの名前は誤解を招く可能性があります- Singleline
:
Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);
MSDNから、RegexOptions列挙:
シングルライン-シングルラインモードを指定します。ドット(。)の意味を変更して、(\ nを除くすべての文字ではなく)すべての文字に一致するようにします。
RegexOptions.SingleLineを含めます。これは.
、以下を含むすべてに一致することを意味します。\n
Regex r = new Regex("start(.*?)end", RegexOptions.Multiline | RegexOptions.SingleLine);
詳細については、 http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspxを参照してください。
マルチラインの代わりにシングルラインを使用してください:
Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);
ところで、RegexBuddyはあなたのかけがえのない友達です(いいえ、私は幸せなユーザーであることを除いて、作者とは何の関係もありません)。