-2

假设我有一个如下所示的文本文件:

group 1
group 1
 arbitrary text
group 1
 arbitrary text
group 2
 arbitrary text
 arbitrary text
group 2
group 2
 arbitrary text
#

我想将每个组信息都放在自己的列表中,然后停在“#”处。

清单 1:

group 1
group 1
 arbitrary text
group 1
 arbitrary text

清单 2:

group 2
 arbitrary text
 arbitrary text
group 2
group 2
 arbitrary text

我已经尝试了几件事,但都没有接近,而我的 lambda 技能几乎不存在。任何人都可以帮忙吗?

4

1 回答 1

1

使用 System.Text.RegularExpressions.RegEx 类(.NET 框架),这是一个简单的模式,几乎可以满足您的需求:

group\ (\d+)[\w\W]*group\ \1

问题是,它没有在下一组开始之前捕获最后一个“任意文本”,并且没有检查 # 字符来停止捕获。但我认为这是一个好的开始:)

Regex regex = new Regex(@"group\ (\d+)[\w\W]*group\ \1", RegexOptions.Multiline);
于 2012-12-13T22:02:33.897 回答