繁体   English   中英

正则表达式,提取编号列表(多行)

[英]Regex, extracting numbered lists (multi lines)

我得到以下文字:

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#中尝试它时,正则表达式与任何东西都不匹配。

我究竟做错了什么?

更新

这是gready但没有工作,因为\\s似乎并没有在.NET工作。 我自己可以修复线条结尾(因为它们被剥离)。 但是如何使正则表达式不贪婪? 是否有可能说出类似的话

匹配数字+点,然后采取除了下一个数字+点之外的所有内容

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM