我正在使用C#中的正则表达式解析以下数据。
我无法更改输入数据结构,因此需要知道我所做的事情是否正确,以及是否存在任何潜在的陷阱。
我不是正则表达式的专家,所以会很感激一些建议。
string data = "[contact person]{some person name}[cellphone]{12312313123}[fax]{13131312312312321}";
string regex = @"\[(?<name>.*?)\]\{(?<value>.*?)\}";
foreach (Match s in Regex.Matches(data, regex))
Console.WriteLine(s.Groups["name"] + " = " + s.Groups["value"]);
我得到以下结果:
contact person = some person name
cellphone = 12312313123
fax = 13131312312312321
答案 0 :(得分:1)
你的代码看起来很好,这只是我的建议:
var dic=Regex.Matches(data, regex).Cast<Match>()
.ToDictionary(m=>m.Groups["name"].Value,m=>m.Groups["value"].Value);