3@#sdasfgfggfr3332211ss"[{"id":"33375634","player_id":"3033323","scenario_id":"1","task_group_id":"0101","task_id":"010101";如何从这个字符串中找出后面这个id后面的数字存入变量,用正则表达式貌似可以,但是如何操作呀,上面这个字符串长度不固定。刚学编程,求教了!!谢谢!c#正则表达式编程

解决方案 »

  1.   

     string str = File.ReadAllText("D:\\1.txt", Encoding.Default);
                string id = Regex.Match(str, @"(?is)(?<=""id"":"")\d+(?="")").Value;
               
      

  2.   

    3@#sdasfgfggfr3332211ss"[{"id":"33375634","player_id":"3033323","scenario_id":"1","task_group_id":"0101","task_id":"010101";ddfddfsdfsdf"[{"id":"33375634","player_id":"3033323","scenario_id":"1","task_group_id":"0101","task_id":"010101大概是这样,这个字符串中有好几个id怎么把,每个id后面数字给存入不同变量,求解呀!!
      

  3.   

     string pattern = "\"(?<id>[\\w_]+)\":\"(?<value>[0-9]+)\"";
                Match match = Regex.Match(s, pattern);            while (match.Success)
                {
                    string id = match.Groups["id"].Value;
                    string value = match.Groups["value"].Value;
                    match = match.NextMatch();
                }以上代码可以提取 lz 所需的信息lz 的 id 有很多种,id、player_id 等等,不知道是否是固定种类
    如果是固定种类,可以对正则表达式做些修改,提取信息的时候可以更方便些,如以下形式提取:
    string id = match.Groups["id"].Value;
    string player_id = match.Groups["player_id"].Value;
      

  4.   

    string str = File.ReadAllText("D:\\1.txt", Encoding.Default);
                var idarray = Regex.Matches(str, @"(?is)(?<=""id"":"")\d+(?="")").OfType<Match>().Select(t=>t.Value).ToArray();
      

  5.   

    http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/25.gif
      

  6.   

    你这字符串格式想JOSN格式,用JSON来解析更好