2015-09-09 1 views
0

У меня есть этот формат строка: 110001101, и я хотел бы разделить, что string к string[] по сгруппированным кускам 1 с или 0 с.Split двоичной строки для сгруппированных цифр

Так что с этой строки я хотел бы получить расщепляется string[] = { "11", "000", "11", "0", "1" };

Можно ли добиться того, что с Regex, я не знаю, с чего начать? Или мне нужно найти другое решение ...

ответ

2

Вы можете использовать механизм захвата и использования Regex.Split с простым (0+) регулярное выражение, как это:

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

Результат:

enter image description here

Это будет работайте, так как у вас нет символов, кроме 0 или 1 в ваших входных данных ng, а захваченный текст также выводится как элементы массива. Код LINQ помогает устранить любые нежелательные пустые элементы из результирующего массива (как в случае с 0 с).

3

Итак, вы хотите либо последовательные нули (0+), либо последовательные (1+). Просто перебирать матчей:

0+|1+