string abc = "123、ff、ddd、eee、fff、kk、ddd、gggggg、kkk、xxxx";我可能要每三个“、”分割一次。
也可能每四个“、”分割一次。例如如果按三次“、”分割一次。
那分割后就
123、ff、ddd
eee、fff、kk
ddd、gggggg、kkk
xxx

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-07-21 15:57:45 编辑
      

  2.   

                string abc = "123、ff、ddd、eee、fff、kk、ddd、gggggg、kkk、xxxx";
                string[] result = Regex.Split(abc, @"(?<=\G(?:[^、]+、){3})");
                foreach (string s in result)
                    Console.WriteLine(s);
      

  3.   

                string abc = "123、ff、ddd、eee、fff、kk、ddd、gggggg、kkk、xxxx";
                string[] result = Regex.Split(abc, @"(?<=\G(?:[^、]+、){3})");
                foreach (string s in result)
                    Console.WriteLine(s.TrimEnd('、'));
      

  4.   


       public static List<string> GetResult(string text,int count)
            {
                string pattern = @"([^、]+、?){" + count + @"}(?=、|$)";
                return Regex.Matches(text, pattern).Cast<Match>().Select(a => a.Value).ToList();
            }
    调用
     string abc = "123、ff、ddd、eee、fff、kk、ddd、gggggg、kkk、xxxx";            List<string> list = GetResult(abc,3);
                /*
                  [0] "123、ff、ddd" string
                [1] "eee、fff、kk" string
                [2] "ddd、gggggg、kkk" string
                [3] "xxxx" string             */