C#解析文本文件以提取特定行

时间:2012-03-09 08:31:16

标签: c# file parsing

我有一个文本文件,其中包含新行中的大量数据 但我想提取以值开头的行:

坐标=(111222333)

这条线有几个实例,我实际上想要提取部分“111,222,333” 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

这样的东西
var result = File.ReadAllLines(@"C:\test.txt")
    .Where(p => p.StartsWith("coordinates=("))
    .Select(p => p.Substring(13, p.IndexOf(')') - 13));

第一行非常清楚,第二行仅过滤以coordinates=(开头的行,第三行过滤子串(13是coordinates=(的长度)

resultIEnumerable<string>。您可以将其转换为result.ToArray()

的数组

答案 1 :(得分:3)

var text = File.ReadAllText(path);
var result = Regex.Matches(text, @"coordinates=\((\d+),(\d+),(\d+)\)")
        .Cast<Match>()
        .Select(x => new
        {
            X = x.Groups[1].Value,
            Y = x.Groups[2].Value,
            Z = x.Groups[3].Value
        })
        .ToArray();