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

Split binary string to grouped digits

我有这种格式的字符串:110001101,我想通过 1 或 [=14= 的分组块将 string 拆分为 string[] ]s。

所以从那个字符串我会分裂 string[] = { "11", "000", "11", "0", "1" };

是否可以使用 Regex 实现,我不知道从哪里开始?或者我应该找到其他解决方案...

因此您需要连续的零 (0+) 或连​​续的零 (1+)。只需遍历匹配项:

0+|1+

您可以使用捕获机制并将 Regex.Split(0+) 正则表达式一起使用,如下所示:

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

结果:

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