我收集的文本文件:C#正則表達式:如何提取集合
(Collection
(Item "Name1" 1 2 3)
(Item "Simple name2" 1 2 3)
(Item "Just name 3" 4 5 6))
集也可能是空的:
(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();
}
你想在輸出什麼? –
@Michele Virgilio:在輸出中,我想提取所有項目,例如名稱,類型,長度和數字 –
所以你只需要解析(Item「Name1」1 2 3)(Item「Simple name2」1 2 3)(Item「Just name 3」4 5 6) 不是整個字符串 –