5

これが私の正規表現です:Regex r = new Regex("start(.*?)end", RegexOptions.Multiline);

"start"つまり、との間で情報を取得したいということです"end"。ただし、問題は、開始と終了の間に改行があるか\n、正規表現が何も返さないことです。

では、どうすれば正規表現を検索できます\nか?

4

3 に答える 3

6

Multiline正しいオプションの1つであるように、オプションの名前は誤解を招く可能性があります- Singleline

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);

MSDNから、RegexOptions列挙

シングルライン-シングルラインモードを指定します。ドット(。)の意味を変更して、(\ nを除くすべての文字ではなく)すべての文字に一致するようにします。

于 2012-05-20T20:50:03.830 に答える
2

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を参照してください。

于 2012-05-20T20:49:56.120 に答える
1

マルチラインの代わりにシングルラインを使用してください:

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline);

ところで、RegexBuddyはあなたのかけがえのない友達です(いいえ、私は幸せなユーザーであることを除いて、作者とは何の関係もありません)。

于 2012-05-20T20:52:25.607 に答える