У меня есть коллекция в текстовом файле:
(Collection
(Item "Name1" 1 2 3)
(Item "Simple name2" 1 2 3)
(Item "Just name 3" 4 5 6))
Коллекция также может быть пустой:
(Collection)
Количество предметов не определено. Это может быть один предмет или сто. По предыдущему извлечению у меня уже есть внутренний текст между элементом Collection:
(Item "Name1" 1 2 3)(Item "Simple name2" 1 2 3)(Item "Just name 3" 4 5 6)
В случае пустой коллекции это будет пустая строка.
Как я могу разобрать эту коллекцию, используя регулярное выражение .Net?
Я пробовал это:
string pattern = @"(\(Item\s""(?<Name>.*)""\s(?<Type>.*)\s(?<Length>.*)\s(?<Number>.*))*";
Но приведенный выше код не дает никаких реальных результатов.
UPDATE:
Я пытался использовать регулярные выражения по-другому:
foreach (Match match in Regex.Matches(document, pattern, RegexOptions.Singleline))
{
for (int i = 0; i < match.Groups["Name"].Captures.Count; i++)
{
Console.WriteLine(match.Groups["Name"].Captures[i].Value);
}
}
или
while (m.Success)
{
m.Groups["Name"].Value.Dump();
m.NextMatch();
}