c#关于字符串截取的问题

我有个字符串比如a="abcdanmcadedcdeefako"那么我怎么能得到一个数组,其中数组的各项是字母a和c的中间字符,即第一项是"b"第二项"nm"第三项"ded"?求大神赐教,不知道是不是和Split有关?

 static void Main(string[] args)
        {
            string a = "abcdanmcadedcdeefako";
                        Regex reg = new Regex("(?i)(?<=a)[^a]*(?=c)");
            MatchCollection mc = reg.Matches(a);
            foreach (Match m in mc)
            {
                Console.WriteLine(m.Value);
            }
        }

你可以先用replace把a和c换成空格" ",然后用split,把空格错位分隔符。
由于可能有a和c连续出现的情况,你可能会有连续多个空格出现,所以用split的时候记得检查你的得到的字符串是不是空的。

foreach (string s in Regex.Matches(a, "a([a-z])+?c").Select(x => x.Groups[0].Value))
...

        string a = "abcdanmcadedcdeefako";
        a = a.Replace('a', ' ').Trim();  //去掉前后空格
        a = a.Replace('c', ' ').Trim();  //去掉前后空格

        string[] str = a.Split(' ') ;
        for (int i=0; i<str.Length ; i++)
        {
            if (str[i].Trim() != "")   //中间替换后有空格
            {
                MessageBox.Show(str[i]);
            }
        }

danielinbiti大神给的答案很棒。在JAVA中也可以