请教一个关于字符串分割的问题! c#

PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP

如何分割成以下字符串?

PP,BB,PPP,B,PP,BB,P,B,P,BBBB,P,BB,P,B,PP,BB,P,BBBB,PP,BB,P,BBB,PPP,BBBB,PP,B,PP

 string s = "PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP";
string[] result = Regex.Matches(s, "P+|B+").Cast<Match>().Select(x => x.Value).ToArray();

string s = "PPBBPPPBPPBBPBPBBBBPBBPBPPBBPBBBBPPBBPBBBPPPBBBBPPBPP";
string[] result = Regex.Matches(s, "P+|B+").Cast().Select(x => x.Value).ToArray();

输入字符串
循环检查字符,以字符长度为循环结束条件
以第一个字符为标杆
如果和标杆相同,输出该字符
遇到不同于标杆的字符,进入if语句
输出,同时将该字符变成标杆
好像标杆要求不能为变量,不过大概思路就是这样了
也可以从头到尾循环,遇到相邻不同的就输出一个,

 public static String[] splitString(String str)
   {
      String string="";
      for(int i=0;i<str.length()-1;i++)
      {
         if(str.substring(i, i+1).equals(str.substring(i+1, i+2)))
         {
             string=string+str.substring(i, i+1)+str.substring(i+1, i+2);
         }
         else 
         {
            string=string+str.substring(i, i+1)+"_";  
         }
      }
      return string.split("_");
   }