2

製品情報を含む文字列があり、その文字列を解析して製品情報を読みたいと思います。

私の文字列は次のようになります。

ID: 1
NAME: Product name
INFORMATION: Here goes the information about a product 
STATUS: Available

このテキストを次のように解析したいと思います。

string id = product id;
string name = product name;
string info = product information; 
string available = product availability; 

どうすればそれを達成できますか。私はそれがグループで可能であることを知っていますが、私は立ち往生していて、それをどのように行うのかわかりません。

前もって感謝します。

4

1 に答える 1

4

たとえば、ディクショナリにデータを非常に簡単に解析できます。ここでは正規表現は実際には必要ないことに注意してください。

var values  = data.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                  .Select(line => line.Split(":".ToCharArray(), 2))
                  .ToDictionary(pair => pair[0], pair => pair[1], 
                                StringComparer.OrdinalIgnoreCase);
string name = values["name"];

いくつかのスペースをトリミングした正規表現オプション:

var values = Regex.Matches(data, @"^(?<Key>\w+)\s*:\s*(?<Value>.*?)\s*$", RegexOptions.Multiline)
                  .Cast<Match>()
                  .ToDictionary(m => m.Groups["Key"].Value,
                                m => m.Groups["Value"].Value,
                                StringComparer.OrdinalIgnoreCase);
于 2011-08-25T09:42:50.420 に答える