C# 将二进制字符串拆分为分组数字
我有这种格式的字符串:C# 将二进制字符串拆分为分组数字,c#,regex,string-split,C#,Regex,String Split,我有这种格式的字符串:110001101,我想将string按1s或0s的分组块拆分为string[] 所以从这个字符串中,我将得到拆分的string[]={“11”,“000”,“11”,“0”,“1”} 我不知道从哪里开始,用正则表达式能做到这一点吗?或者我应该找到另一个解决方案…所以您想要连续的零(0+)或连续的零(1+)。只需迭代匹配项: 0+|1+ 所以您需要连续的零(0+)或连续的一(1+)。只需迭代匹配项: 0+|1+ 您可以使用捕获机制,使用Regex.Split和一个(0+
110001101
,我想将string
按1
s或0
s的分组块拆分为string[]
所以从这个字符串中,我将得到拆分的string[]={“11”,“000”,“11”,“0”,“1”}代码>
我不知道从哪里开始,用正则表达式能做到这一点吗?或者我应该找到另一个解决方案…所以您想要连续的零(0+
)或连续的零(1+
)。只需迭代匹配项:
0+|1+
所以您需要连续的零(0+
)或连续的一(1+
)。只需迭代匹配项:
0+|1+
您可以使用捕获机制,使用Regex.Split
和一个(0+)
Regex,如下所示:
var txt5 = "110001101";
var res5 = Regex.Split(txt5, @"(0+)").Where(p => !string.IsNullOrEmpty(p)).ToArray();
结果:
这将起作用,因为您的输入字符串中除了0
或1
之外没有其他符号,捕获的文本也将作为数组元素输出。LINQ代码有助于从生成的数组中消除任何不受欢迎的空元素(仅适用于0
s)。您可以使用捕获机制,使用Regex.Split
,只需(0+)
Regex,如下所示:
var txt5 = "110001101";
var res5 = Regex.Split(txt5, @"(0+)").Where(p => !string.IsNullOrEmpty(p)).ToArray();
结果:
这将起作用,因为您的输入字符串中除了0
或1
之外没有其他符号,捕获的文本也将作为数组元素输出。LINQ代码有助于从生成的数组中消除任何不受欢迎的空元素(仅适用于0
s)