将二进制字符串拆分为分组数字

时间:2015-09-09 07:52:28

标签: c# regex string-split

我有这种格式的字符串:110001101我希望按string s或string[] s的分组块将1拆分为0

因此,从该字符串开始,我将被分割string[] = { "11", "000", "11", "0", "1" };

有可能用Regex实现,我不知道从哪里开始?或者我应该找到另一种解决方案......

2 个答案:

答案 0 :(得分:3)

所以你想要连续的零(0+)或连续的(1+)。只需迭代匹配:

0+|1+

答案 1 :(得分:2)

您可以使用捕获机制并使用Regex.Split仅使用(0+)正则表达式:

var txt5 = "110001101";
var res5 = Regex.Split(txt5, @"(0+)").Where(p => !string.IsNullOrEmpty(p)).ToArray();

结果:

enter image description here

这将起作用,因为输入字符串中没有01以外的符号,捕获的文本也作为数组元素输出。 LINQ代码有助于从结果数组中消除任何不受欢迎的空元素(仅与0的情况一样)。