C # Разбор текстового файла для извлечения конкретной строки - PullRequest
0 голосов
/ 09 марта 2012

У меня есть текстовый файл, который содержит много данных каждый на новой строке но я хочу извлечь строки, которые начинаются со значений:

координаты = (111222333)

Есть несколько экземпляров этой строки, и я бы на самом деле хотел извлечь часть "111,222,333" Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 09 марта 2012

Что-то вроде

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

Первая строка достаточно четкая, вторая строка фильтрует только те строки, которые начинаются с coordinates=(, третья строка извлекает подстроку (13 - длина coordinates=()

result - это IEnumerable<string>.Вы можете преобразовать его в массив с result.ToArray()

3 голосов
/ 09 марта 2012
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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...