字符串: 0000001000001100111000000
位数的5的整倍数, 要求, 每隔5位为一组,
例如上面的字符串分组如下: 
组1:00000
组2:01000
组3:00110
组4:00000
组5:01110
组6:00000要求: 去掉在前面 只有一个1, 或者没有1, 的连续组, 去掉后面只有一个1, 或者没有1的连续组得到字符串001100000001110
也就是 得到3,4,5组

解决方案 »

  1.   

    无法得到你的结果。
    如果是取3,4,5分组。
    string test = "0000001000001100111000000";
    string result = Regex.Replace(test,"(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})","$3$4$5");
    result 是你要的3,4,5分组
      

  2.   

    恩。按你1楼的文本就对了
    string test = "0000001000001100111000000";
    string result = Regex.Replace(test,@"(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})(\d{5})","$3$4$5");
      

  3.   

    ..固定的 我何必用正则, 直接 sub 不就完了....
      

  4.   


    void Main()
    {
    string s="000000100000110000000111000000";
     
    for(int i=0;i<s.Length /5;i++)
    {
      string t =new string(s.ToCharArray().Skip(i*5).Take(5).ToArray());
      if(t.ToCharArray().Count(n=>n=='1')>1)
      {
        Console.WriteLine(t);
      }
    }            
    }/*
    00110
    01110
    *///此代码得到的结果是 : 每组中1的个数大于1的数组
      

  5.   


    string s="000000100000110000000111000000";
     
    for(int i=0;i<s.Length /5;i++)
    {
      var t =s.ToCharArray().Skip(i*5).Take(5).ToArray();
      if(t.Count(n=>n=='1')>1)
      {
        Console.WriteLine(new string(t));
      }
    }
      

  6.   


    因为组4在中间 .其实问题有点类似于string.trim()方法, 每一个分组, 如果只有一个1,或者没有1, 就当空格处理. 组4虽然没有1, 是空格. 可是不是在"前面"和"后面".
    这样说 ,明白了吗?
      

  7.   

    不行!
    看:
    测试字符:0000001000001100111000000
    正则:^(?:([01])\1{4})*((?:[0-1]{5})*?)(?:([01])\3{4})*?$
    结果:         捕获数量: 1
    ********捕获: 1****gourp_count:4********
    ************  gourp[0]*********
    0000001000001100111000000
    ************  gourp[1]*********
    0
    ************  gourp[2]*********
    010000011001110
    ************  gourp[3]*********
    0
    ==============
    很明显, gourp[2]里面   01000  不是我要的
      

  8.   

    看不懂你的规则了。你顶楼要的不就是
    010000011001110

    你Trim掉头尾连续的5个1或5个0?
    01000怎么又不要了?不明白你的意思了。
      

  9.   

    不是连续的5个1, 而是1个1, 
    也就是说5位全部为0, 或者有一个1, 视作空格. 然后string.trim();
      

  10.   

    你不用管它有多在吧,用while循环,每次剪5位出来判断,到满足为止就是了