2013-02-28 54 views
0

嗨,如果任何人都可以帮助我新的正则表达式,我已经做了一些基本的例子,但没有我需要的。 这是我需要阅读我的文本文件:c#正则表达式来查找“[数据]”和以下文本

[data] 
84 73 0 -124 0 50 
84 73 0 -124 0 50 
84 84 0 -124 0 50 
87 109 0 -124 0 50 
82 120 0 -124 0 50 
82 132 0 -124 0 50 
83 143 0 -124 0 50 
83 154 0 -124 0 50 

我当前的代码在文本文件中,并将其存储到一个列表中我只需要检测的[data]头一个表达式读取信息,然后开始阅读所有的例如,在[data]之后的信息直到结束或者优选地直到它达到\r\n,例如在文本文件中存在更多数据的情况下。 我不是要求任何人去做我的代码,我已经完成了所有剩下的工作,只是表达方式或正确方向上的一个点。

非常感谢您的帮助。

+1

“开始读取所有信息”是什么意思?什么是预期的输出? – VladL 2013-02-28 13:02:59

+0

你是什么意思,“...并将其存储到列表中?”我们在这里说'列表'吗?如果是这样,那么如果它在列表中,为什么你需要一个正则表达式? – 2013-02-28 13:07:23

+0

您可以逐行读取文件,如果它包含“[data]”,则跳过第一行 – polkduran 2013-02-28 13:09:03

回答

0

这可能不是最短的正则表达式会做你想要什么,但我认为它的工作原理(\[data\]{1}\s*(\d+\s*|(\-{1})\d+\s*)+\n)。我用http://regexpal.com/来测试上面的正则表达式:

[data] 123 73 0 -124 21312 123 73 0 -123 231231 
123 

作为测试数据。

+0

非常感谢你后来的我。非常感激 :) – deanson 2013-02-28 13:50:28

0

为什么要使用正则表达式时,你可以使用FilereadLinesLinq

var lines = File.ReadLines("text.txt"); 
var result = lines.SkipWhile(i => i != "[data]").Skip(1); 
+0

谢谢这项工作,但只有在[数据]下面没有其他文字时 84 73 0 -124 0 50 84 73 0 -124 0 50 84 84 0 -124 0 50 87 109 0 -124 0 50 82 120 0 -124 0 50 82 132 0 -124 0 50 83 143 0 -124 0 50 83 154 0 -124 0 50 – deanson 2013-02-28 13:36:23

+0

还有其他什么文字? – 2013-02-28 13:37:40

+0

这将是上面的[数据]开始时间= 14:33:45.0 长度= 00:49:34.2 间隔= 1 Upper1 = 0 Lower1 = 0 Upper2 = 0 Lower2 = 0和评论将低于其由\ r \ n – deanson 2013-02-28 13:42:46