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