将二进制字符串拆分为分组数字
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();
结果:
这将起作用,因为您在输入字符串中没有 0
或 1
以外的符号,并且捕获的文本也作为数组元素输出。 LINQ 代码有助于从结果数组中消除任何不受欢迎的空元素(仅 0
s 就是这种情况)。
我有这种格式的字符串: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();
结果:
这将起作用,因为您在输入字符串中没有 0
或 1
以外的符号,并且捕获的文本也作为数组元素输出。 LINQ 代码有助于从结果数组中消除任何不受欢迎的空元素(仅 0
s 就是这种情况)。