-2

次のようなテキストファイルがあります。

<page>
Line 1
Hello World
<endpage>
<page>
Another page
<endpage>

<page>ここで、このテキストをとタグで分割したいと<endpage>思います。次の正規表現で試しました。

Regex regex = new Regex(@"<page>.*?<endpage>");
MatchCollection matchCollection = regex.Matches(text);

<page>しかし、これはとの間に改行がない場合にのみ機能し<endpage>ます。問題を解決するための正しい正規表現は何ですか?

4

2 に答える 2

5

複数の行を一致させるには、次のオプション.*を有効にする必要があります。RegexOptions.Singleline

Regex regex = new Regex(@"<page>.*?<endpage>", RegexOptions.Singleline);
于 2013-03-07T15:17:53.540 に答える
1

デフォルトで.は、改行文字と一致しません。これは、すべてが同じ行で発生した場合にのみパターンが一致することを意味します。

複数行にわたって一致させるには、必要がありますRegexOptions.Singleline(名前は少しわかりにくいですが、各行で正規表現を調べてテストするのではなく、文字列全体を「1 行」として扱うという考え方です)。

于 2013-03-07T15:18:31.240 に答える