我有一个字符串
" FirstName = John,LastName = Smith,地址= 1华尔街,纽约"
需要拆分为字典:
如果考虑到地址字段值中包含分隔符Regex
,如何使用','
实现这一目标?
还可以说我有以下字符串(注意地址中的冒号):
" FirstName = John,LastName = Smith,地址:1华尔街,纽约"
上述结果如何使用= or :
作为键值对分隔符?
答案 0 :(得分:1)
假设密钥不能包含任何分隔符(逗号后面应该跟有密钥来分隔对)
var data = "FirstName=John, LastName=Smith, Address:1 Wall Street, NY, USA, TestKey=TestValue";
var dic = new Dictionary<string, string>();
var reg = @"([^=:,]*)[=:](.*?)(?:$|,\s*(?=[^=:,]*[=:]))";
foreach (Match m in Regex.Matches(data, reg)) {
var key = m.Groups[1].Value;
var val = m.Groups[2].Value;
dic[key] = val;
Console.WriteLine("{0} = {1}", key, val);
}