1、"phase":"364587" <---提取这里的整数
2、"time_draw":"2013-05-31 22:07:30" <---提取这里的时间
3、{"key":"ball","data":["01","07","05","09","10","04","02","03","06","08"]} <---提取这里的10个号码=====================================================字符串如下(注意红色字体){"code":0,"message":"","data":[{"phasetype":557,"phase":"364587","create_at":"2013-02-27 16:03:51","time_startsale":"2013-05-31 22:02:30","time_endsale":"2013-05-31 22:07:30","time_endticket":"2013-05-31 22:07:30","time_draw":"2013-05-31 22:07:30","status":5,"forsale":0,"is_current":0,"result":{"result":[{"key":"ball","data":["01","07","05","09","10","04","02","03","06","08"]}]},"result_detail":{"resultDetail":[{"key":"prize1","bet":"0","prize":888888},{"key":"prize2","bet":"0","prize":2},{"key":"prize3","bet":"0","prize":80000},{"key":"prize4","bet":"0","prize":10000},{"key":"prize5","bet":"0","prize":5000},{"key":"prize6","bet":"0","prize":250},{"key":"prize7","bet":"0","prize":50},{"key":"prize8","bet":"0","prize":10},{"key":"prize9","bet":"0","prize":5},{"key":"prize10","bet":"0","prize":2},{"key":"prize11","bet":"0","prize":40000},{"key":"prize12","bet":"0","prize":2000},{"key":"prize13","bet":"0","prize":500},{"key":"prize14","bet":"0","prize":100},{"key":"prize15","bet":"0","prize":20},{"key":"prize16","bet":"0","prize":10},{"key":"prize17","bet":"0","prize":2},{"key":"prize18","bet":"0","prize":20000},{"key":"prize19","bet":"0","prize":4500},{"key":"prize20","bet":"0","prize":400},{"key":"prize21","bet":"0","prize":25},{"key":"prize22","bet":"0","prize":10},{"key":"prize23","bet":"0","prize":2},{"key":"prize24","bet":"0","prize":10000},{"key":"prize25","bet":"0","prize":2000},{"key":"prize26","bet":"0","prize":100},{"key":"prize27","bet":"0","prize":10},{"key":"prize28","bet":"0","prize":2},{"key":"prize29","bet":"0","prize":500},{"key":"prize30","bet":"0","prize":30},{"key":"prize31","bet":"0","prize":8},{"key":"prize32","bet":"0","prize":3},{"key":"prize33","bet":"0","prize":2},{"key":"prize34","bet":"0","prize":350},{"key":"prize35","bet":"0","prize":20},{"key":"prize36","bet":"0","prize":5},{"key":"prize37","bet":"0","prize":2},{"key":"prize38","bet":"0","prize":160},{"key":"prize39","bet":"0","prize":10},{"key":"prize40","bet":"0","prize":2},{"key":"prize41","bet":"0","prize":55},{"key":"prize42","bet":"0","prize":2},{"key":"prize43","bet":"0","prize":10},{"key":"prize44","bet":"0","prize":5000},{"key":"prize45","bet":"0","prize":700},{"key":"prize46","bet":"0","prize":90}]},"pool_amount":"","sale_amount":"","ext":"","fc3d_sjh":null,"terminal_status":2,"fordraw":0,"time_startsale_fixed":"2013-05-31 22:00:30","time_endsale_fixed":"2013-05-31 22:05:30","time_endsale_syndicate_fixed":"2013-05-31 22:05:30","time_endsale_upload_fixed":"2013-05-31 22:05:30","time_draw_fixed":"2013-05-31 22:08:00","time_startsale_correction":120,"time_endsale_correction":120,"time_endsale_syndicate_correction":120,"time_endsale_upload_correction":120,"time_draw_correction":30,"time_exchange":"2013-07-29 22:07:30"},{"phasetype":"557","phase":"364588","create_at":"2013-02-27 16:03:51","time_startsale":"2013-05-31 22:07:30","time_endsale":"2013-05-31 22:12:30","time_endticket":"2013-05-31 22:12:30","time_draw":"2013-05-31 22:12:30","status":"3","forsale":"0","is_current":"0","result":null,"result_detail":null,"pool_amount":"","sale_amount":"","ext":"","fc3d_sjh":null,"terminal_status":"1","fordraw":"0","time_startsale_fixed":"2013-05-31 22:05:30","time_endsale_fixed":"2013-05-31 22:10:30","time_endsale_syndicate_fixed":"2013-05-31 22:10:30","time_endsale_upload_fixed":"2013-05-31 22:10:30","time_draw_fixed":"2013-05-31 22:13:00","time_startsale_correction":120,"time_endsale_correction":120,"time_endsale_syndicate_correction":120,"time_endsale_upload_correction":120,"time_draw_correction":30,"time_exchange":"2013-07-29 22:12:30"}],"redirect":"","datetime":"2013-05-31 22:11:40","timestamp":1370009500}
很少写程序了,请牛人提供完全代码

解决方案 »

  1.   

     string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));            string pattern = @"(?i)(['""]?)data\1:\[[\s\S]*?(['""]?)phase\2:(['""]?)(?<Phase>\d+?)\3";
                pattern += @"[\s\S]*?(['""]?)time_draw\4:(['""]?)(?<Time_draw>[^'""]+?)\5";
                pattern += @"[\s\S]*?(['""]?)result\6:\{[\s\S]*?(['""]?)data\7:\s*?\[(\s*?['""](?<Num>\d+)['""],?)+";            Match m = Regex.Match(tempStr,pattern);
                string value1 = m.Groups["Phase"].Value;//364587
                string value2 = m.Groups["Time_draw"].Value;//2013-05-31 22:07:30
                string Num = string.Join("|",m.Groups["Num"].Captures.Cast<Capture>().Select(a => a.Value));
                //01|07|05|09|10|04|02|03|06|08
      

  2.   

    这是传说中的 Json 格式,用正则表达式太绕了。
      

  3.   

    Quote: 引用 5 楼 Return_false 的回复:
    谢谢哥们,测试你的正则可用,现在我要多提取二个内容不知道要怎么做(提取红色字体的数字和日期)。
    {"code":0,"message":"","data":[{"phasetype":557,"phase":"364587","create_at":"2013-02-27 16:03:51","time_startsale":"2013-05-31 22:02:30","time_endsale":"2013-05-31 22:07:30","time_endticket":"2013-05-31 22:07:30","time_draw":"2013-05-31 22:07:30","status":5,"forsale":0,"is_current":0,"result":{"result":[{"key":"ball","data":["01","07","05","09","10","04","02","03","06","08"]}]},"result_detail":{"resultDetail":[{"key":"prize1","bet":"0","prize":888888},{"key":"prize2","bet":"0","prize":2},{"key":"prize3","bet":"0","prize":80000},{"key":"prize4","bet":"0","prize":10000},{"key":"prize5","bet":"0","prize":5000},{"key":"prize6","bet":"0","prize":250},{"key":"prize7","bet":"0","prize":50},{"key":"prize8","bet":"0","prize":10},{"key":"prize9","bet":"0","prize":5},{"key":"prize10","bet":"0","prize":2},{"key":"prize11","bet":"0","prize":40000},{"key":"prize12","bet":"0","prize":2000},{"key":"prize13","bet":"0","prize":500},{"key":"prize14","bet":"0","prize":100},{"key":"prize15","bet":"0","prize":20},{"key":"prize16","bet":"0","prize":10},{"key":"prize17","bet":"0","prize":2},{"key":"prize18","bet":"0","prize":20000},{"key":"prize19","bet":"0","prize":4500},{"key":"prize20","bet":"0","prize":400},{"key":"prize21","bet":"0","prize":25},{"key":"prize22","bet":"0","prize":10},{"key":"prize23","bet":"0","prize":2},{"key":"prize24","bet":"0","prize":10000},{"key":"prize25","bet":"0","prize":2000},{"key":"prize26","bet":"0","prize":100},{"key":"prize27","bet":"0","prize":10},{"key":"prize28","bet":"0","prize":2},{"key":"prize29","bet":"0","prize":500},{"key":"prize30","bet":"0","prize":30},{"key":"prize31","bet":"0","prize":8},{"key":"prize32","bet":"0","prize":3},{"key":"prize33","bet":"0","prize":2},{"key":"prize34","bet":"0","prize":350},{"key":"prize35","bet":"0","prize":20},{"key":"prize36","bet":"0","prize":5},{"key":"prize37","bet":"0","prize":2},{"key":"prize38","bet":"0","prize":160},{"key":"prize39","bet":"0","prize":10},{"key":"prize40","bet":"0","prize":2},{"key":"prize41","bet":"0","prize":55},{"key":"prize42","bet":"0","prize":2},{"key":"prize43","bet":"0","prize":10},{"key":"prize44","bet":"0","prize":5000},{"key":"prize45","bet":"0","prize":700},{"key":"prize46","bet":"0","prize":90}]},"pool_amount":"","sale_amount":"","ext":"","fc3d_sjh":null,"terminal_status":2,"fordraw":0,"time_startsale_fixed":"2013-05-31 22:00:30","time_endsale_fixed":"2013-05-31 22:05:30","time_endsale_syndicate_fixed":"2013-05-31 22:05:30","time_endsale_upload_fixed":"2013-05-31 22:05:30","time_draw_fixed":"2013-05-31 22:08:00","time_startsale_correction":120,"time_endsale_correction":120,"time_endsale_syndicate_correction":120,"time_endsale_upload_correction":120,"time_draw_correction":30,"time_exchange":"2013-07-29 22:07:30"},{"phasetype":"557","phase":"364588","create_at":"2013-02-27 16:03:51","time_startsale":"2013-05-31 22:07:30","time_endsale":"2013-05-31 22:12:30","time_endticket":"2013-05-31 22:12:30","time_draw":"2013-05-31 22:12:30","status":"3","forsale":"0","is_current":"0","result":null,"result_detail":null,"pool_amount":"","sale_amount":"","ext":"","fc3d_sjh":null,"terminal_status":"1","fordraw":"0","time_startsale_fixed":"2013-05-31 22:05:30","time_endsale_fixed":"2013-05-31 22:10:30","time_endsale_syndicate_fixed":"2013-05-31 22:10:30","time_endsale_upload_fixed":"2013-05-31 22:10:30","time_draw_fixed":"2013-05-31 22:13:00","time_startsale_correction":120,"time_endsale_correction":120,"time_endsale_syndicate_correction":120,"time_endsale_upload_correction":120,"time_draw_correction":30,"time_exchange":"2013-07-29 22:12:30"}],"redirect":"","datetime":"2013-05-31 22:11:40","timestamp":1370009500}
     
      

  4.   

    如果用C#,Json如何获取这几个内容?
      

  5.   

    为什么定义这么复杂啊,用\t或者\f啥的连起来多好,用的时候直接split多舒服
      

  6.   

    做好用json解析
    下载一下Newtonsoft.Json.DLL
    参考http://www.cnblogs.com/sbxwylt/archive/2008/12/31/1366199.html
      

  7.   

                string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));            string pattern = @"(?i)(['""]?)phase\1:(['""]?)(?<Phase>\d+?)\2";
                pattern += @"[\s\S]*?(['""]?)time_draw\3:(['""]?)(?<Time_draw>[^'""]+?)\4";
                pattern += @"[\s\S]*?(['""]?)result\5:(?:null|\{[\s\S]*?(['""]?)data\6:\s*?\[(\s*?['""](?<Num>\d+)['""],?)+)";
                //循环读取
                foreach (Match m in Regex.Matches(tempStr, pattern))
                {
                    string Phase = m.Groups["Phase"].Value;//364587
                    string Time_draw = m.Groups["Time_draw"].Value;//2013-05-31 22:07:30
                    string Num = string.Join("|", m.Groups["Num"].Captures.Cast<Capture>().Select(a => a.Value));
                    //01|07|05|09|10|04|02|03|06|08
                }
      

  8.   

    (?<="phase":")([0-9]*)(?=")(?<="time_draw":"2013-05-31\s)([0-9]{2}:[0-9]{2}:[0-9]{2})(?=")(?<=\{"key":"ball","data":)\[([0-9,"]*\])(?=\})