3

次のテキストを取得しました。

1. This is a text
where each item can span over multiple lines
2. that I want to
extract each seperate
item from
3. How can I do that?

私はリドルでこの正規表現を試しました:

/([\d]+\.)(.*)/s

しかし、それが貪欲なのか(1つのアイテムを返すだけ)なのか、それともすべてのアイテムを抽出するのかはわかりません。しかし、C# で試してみると、正規表現は何にも一致しませんでした。

私は何を間違っていますか?

アップデート

\s.NET では動作しないように見えるため、準備はできていますが、動作しませんでした。行末は自分で修正できます (削除されているため)。しかし、正規表現が貪欲にならないようにするにはどうすればよいですか? みたいなこと言ってもいいのかな

数字+ドットを一致させてから、次の数字+ドット以外のすべてを取ります?

4

1 に答える 1

6
string input = @"1. This is a text
    where each item can span over multiple lines
    2. that I want to
    extract each seperate
    item from
    3. How can I do that?";
string pattern = @"([\d]+\. )(.*?)(?=([\d]+\.)|($))";
var matches = Regex.Matches(input, pattern, RegexOptions.Singleline);

foreach(Match match in matches)
{
    Console.WriteLine(match.Groups[2].Value);
}
于 2013-03-28T10:11:22.627 に答える