日期:2014-05-17  浏览次数:20711 次

100分求解,如何获取一下字符串内的值
如何获取一下例子中的各个值

--Property
Property =
{
background  = {flag=2,color={0,0,0},url="background.jpg"},
height = 92,
keep = {x = 10, y = 0},
recommend = {x = 480, y = 0},
search = {x = 570, y = 80},
searchText = {
x = 0,
y = 92,
height=73,
text = { "1","2","3"},
size = 38,
color = {54, 106, 162},
offsetX = 10,
spacing = 20,
}
}

要得到的结果是外层大括号内所有信息,注意总大括号中有包含其他大括号,该如何实现?

------解决方案--------------------
把=替换成:
不就是json数据了吗?
用System.Runtime.Serialization.Json.DataContractJsonSerializer
或System.Web.Script.Serialization.JavaScriptSerializer
解析json数据就可以了
------解决方案--------------------

            string str = File.ReadAllText("D:\\1.txt", Encoding.Default);
            var ary = Regex.Matches(Regex.Replace(str, @"^[^{]+{
------解决方案--------------------
}[^}]+$", ""), @"(?is)([a-z]+)\s*=\s*{(((?<g>{)
------解决方案--------------------
(?<-g>})
------解决方案--------------------
[^{}])*(?(g)(?!)))}")
                .OfType<Match>().Select(t => new { name = t.Groups[1].Value, txt = t.Groups[2].Value }).ToArray();
         
------解决方案--------------------
恩 ,解析成json 可能方便些!