求一正式表达式的写法例原 内容如下:"CC":"421000","MM":"169"
"CC":"421001","MM":"179"
"CC":"421000","MM":"165"
"CC":"421000","MM":"161"
"CC":"421000","MM":"162"要求:
依次分析出CC后面的值,如: ("CC":"421000","MM":"169" 得到的值应为421000 )
如果正确得到了值为421000,那么如何一一到原内容中5个CC的值,并存入数组中,求高人解答

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;class Program
    {
      static void Main()
      {
        string input = @"""CC"":""421000"",""MM"":""169""
    ""CC"":""421001"",""MM"":""179""
    ""CC"":""421000"",""MM"":""165""
    ""CC"":""421000"",""MM"":""161""
    ""CC"":""421000"",""MM"":""162""";
        string[] output = GetCC(input); // 这就是你要的数组
        foreach (string s in output)
        {
          Console.WriteLine(s);
        }
      }
      
      static string[] GetCC(string s)
      {
        List<string> l = new List<string>();
        foreach (string a in s.Split('\n'))
        {
          l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
        }
        return l.ToArray(); 
      }
    }
    /* 程序输出:
    421000
    421001
    421000
    421000
    421000
    */
      

  2.   

    using System;
    using System.Collections.Generic;class Program
    {
      static void Main()
      {
        string input = @"
    ""CC"":""421000"",""MM"":""169""
    ""CC"":""421001"",""MM"":""179""
    ""CC"":""421000"",""MM"":""165""
    ""CC"":""421000"",""MM"":""161""
    ""CC"":""421000"",""MM"":""162""
    ";    string[] output = GetCC(input); // 这就是你要的数组
        foreach (string s in output)
        {
          Console.WriteLine(s);
        }
      }
      
      static string[] GetCC(string s)
      {
        List<string> l = new List<string>();
        foreach (string a in s.Trim().Split('\n'))
        {
          l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
        }
        return l.ToArray(); 
      }
    }
    /* 程序输出:
    421000
    421001
    421000
    421000
    421000
    */
      

  3.   

    楼上的方法灵活性不强呀,
    我想把
    l.Add(a.Split(':')[1].Split(',')[0].Trim('"'));
    把这一句换成
    l.Add(a.Split('CC')[1].Split(',')[0].Trim('"'));
    就开始报错了, 
    最好用一正则来匹配,如 "CC":"*", 这是我自己想的,但是正则不对,不会玩正则.请人继续指教
      

  4.   

    using System;
    using System.Collections.Generic;
    using System.Text.RegularExpressions;class Program
    {
      static void Main()
      {
        string input = @"
    ""CC"":""421000"",""MM"":""169""
    ""CC"":""421001"",""MM"":""179""
    ""CC"":""421000"",""MM"":""165""
    ""CC"":""421000"",""MM"":""161""
    ""CC"":""421000"",""MM"":""162""
    ";    string[] output = GetCC(input); // 这就是你要的数组
        foreach (string s in output)
        {
          Console.WriteLine(s);
        }
      }
      
      static string[] GetCC(string s)
      {
        List<string> l = new List<string>();
        foreach (Match m in Regex.Matches(s, @"""CC"":""([^""]*)"""))
        {
          l.Add(m.Groups[1].ToString());
        }
        return l.ToArray(); 
      }
    }
    /* 程序输出:
    421000
    421001
    421000
    421000
    421000
    */