3

電子メール本文に次のテキストがあるとします。

上記の件名は変更しないでください。この電子メールを送信することは、この製品変更通知 (PCN) の 9001 (Qwest) への配布を遅らせるという私の要求を意味します。この遅延要請の理由は以下のとおりです。

これが私がキャプチャする必要がある理由です。

何行にもわたる長さになることがあります。

そして長く続けてください

「... is provided below:」に続くすべてのテキストをキャプチャしようとしています。

BodyRegex に渡されるパターンは次のとおりです。

.*provided below:(?<1>.*)

実行されるコードは次のとおりです。

Regex regex2 = new Regex(BodyRegex, RegexOptions.IgnoreCase | RegexOptions.Multiline);
string note = null;
Match m2 = regex2.Match(body);
if (m2.Success)
{
    note = m2.Groups[1].Value;
}

一致が見つかりません。

「is provided below:」に続くすべてのテキスト行をキャプチャするには、どの一致パターンを使用する必要がありますか?

4

2 に答える 2

5

セクション (?...) は、希望するものではない先読み構文です。

代わりに、後ろを見てみてください。

(?<=provided below:)[.|\n|\W|\w]*

.NET が .* の使用に期待する方法で行末文字を認識しないという問題が発生したため、 or 条件。

于 2012-09-27T19:21:00.263 に答える
3

single lineオプションでこの正規表現を使用する

^.*?provided below:(.*?)$

ここで動作します

于 2012-09-27T18:50:00.023 に答える