用C#正则表达式解析一个json字符串,如下:private  void TestRegex()
        {           string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串            MatchCollection mc = Regex.Matches(a, @"""(?<key>[^""]+)"":(?<value>[^,}]+)");//正则解析
            Response.Write(mc[0].Groups["value"].Value + "<br/>");//输出的结果是"福建省,没有正常全部解析出来
            Response.Write(mc[1].Groups["value"].Value + "<br/>"); //输出的结果是“福建省石狮市南洋路服装城物流中心2-3号”,有正常全部解析出来         
                
        }
        可能是解析的正则表达式不正确,无法满足要求(遇到有逗号(,)的值只能解析逗号前,逗号后面的值没有解析出来,求正确的解析正则表达式,80分立马全送!

解决方案 »

  1.   

     string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串先用Split(',')把它分裂成数组 在进行解析不就可以了吗
      

  2.   

                string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串
                Regex reg = new Regex(@"""[^""]+"":""(.*?)""(?=[,}])");
                foreach (Match m in reg.Matches(a))
                    Console.WriteLine(m.Groups[1].Value);
      

  3.   

    if(/^("(\\.|[^\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(s)){}http://topic.csdn.net/u/20091009/11/a2abb54f-b15c-4db2-b051-ef5baa396b0d.html希望对你有帮助。
      

  4.   

    "(?<key>[^"]+)":"(?<value>[^}"]+)"你正则表达式错了,试试上面这个。
      

  5.   

    string a = @"{""workArea"":""福建省,泉州市,石狮市,湖滨"",""address"":""福建省石狮市南洋路服装城物流中心2-3号""}";//json字符串
    MatchCollection matches = Regex.Matches(a, @"""\w+"":""(?<value>[^""]+)""");
    foreach (Match match in matches)
    Response.Write(match.Groups[1].Value + "<br/>");