1

そのような文字列から取得する方法 ' name1{value1,value2};name2{value3}; ... nameN{value12, valueN} '

次の形式の 1 つまたは複数の配列: Array = {string, int};{string, int};{string, int};

このような:

{
 { name1 ; value1}
 { name1 ; value2}
 { name2 ; value3}
...
 { nameN ; valueN}
}

C#(.net)で?

4

1 に答える 1

1

ドキュメントが常に整形式であると想定できる場合:

List<KeyValuePair<string, int>> results = new List<KeyValuePair<string, int>>();
foreach (string line in File.ReadAllLines("input.txt"))
{
    Match match = Regex.Match(line, @"^\s*{\s*(.*?)\s*;\s*(\d+)\s*}\s*$");
    if (match.Success)
    {
        string s = match.Groups[1].Value;
        int i = int.Parse(match.Groups[2].Value);
        results.Add(new KeyValuePair<string,int>(s,i));
    }
}

foreach (var kvp in results)
    Console.WriteLine("{0} ; {1}", kvp.Key, kvp.Value);

結果:

name1 ; 1
name1 ; 2
name2 ; 3
nameN ; 23

name1、name2、...、nameN が一意であり、順序を気にしない場合は、 a のDictionary代わりに aを使用することをお勧めしますList。リストの代わりに配列が本当に必要な場合 (おそらく必要ないでしょう)、 を使用できますToArray()

于 2010-04-25T21:22:52.193 に答える