我收到了以下文字:
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
但我不确定它是否贪婪(只返回一个项目)或是否提取所有项目。但是当我在C#中尝试时,正则表达式与任何东西都没有匹配。
我做错了什么?
更新
虽然\s
似乎无法在.NET中运行,但它已经完成但无效。我自己可以修复线条结尾(因为它们被剥离)。但是如何使正则表达式不贪婪?可以说像
匹配数字+点然后除了下一个数字+点之外的所有内容?
答案 0 :(得分:4)
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);
}