解析文本组

时间:2012-12-13 21:41:20

标签: regex

假设我有一个看起来像这样的文本文件:

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

我想将每组信息保存在自己的列表中,然后停在'#'。

的List1:

group 1
group 1
 arbitrary text
group 1
 arbitrary text

列表2:

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

我已经尝试了几件没有接近的东西,我的lambda技能几乎不存在。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

从头开始,使用System.Text.RegularExpressions.RegEx类(.NET Framework),这是一个几乎可以做你想要的简单模式:

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

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

Regex regex = new Regex(@"group\ (\d+)[\w\W]*group\ \1", RegexOptions.Multiline);