键值对正则表达式确认

时间:2014-08-20 07:16:51

标签: c# regex

我正在使用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

1 个答案:

答案 0 :(得分:1)

你的代码看起来很好,这只是我的建议:

var dic=Regex.Matches(data, regex).Cast<Match>()
             .ToDictionary(m=>m.Groups["name"].Value,m=>m.Groups["value"].Value);