我有产品信息的字符串,我想解析该字符串并阅读产品信息。
我的字符串看起来像这样:
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;
我怎样才能做到这一点。我知道这对团体来说是可能的,但是我被困住了,不知道怎么做。
提前致谢。
答案 0 :(得分: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);