2013-09-16 5 views
-1

Я унаследовал часть программного обеспечения, в которой есть код регулярного выражения.Регулярное выражение, не возвращающее массив

В настоящий момент код возвращает одну длинную строку вместо массива из 3 строк.

Я просто не могу понять, как он выглядит правильно.

Это код:

public class EntryLine 
{ 
    public string[] Numbers; 
} 

var result = (from l in Regex.Replace("060926404345061418284348021622343942", "(.{1,2})", "$1").Split(' ') 
         select new EntryLine() { Numbers = Regex.Replace(l, "(.{2})", "$1").Split(' ') }).ToArray(); 

Любая помощь будет принята с благодарностью!

Thanks

+0

Это то, что вы пытаетесь сделать примерно так: var nums = Regex.Matches ("060926404345061418284348021622343942", "(. {1,2})"). Cast () .Выберите (m => m.Value) .ToList(); ' – I4V

+0

Код ничего не делает, он заменяет каждый два символа собой, а затем разбивается на одно пространство, которое также ничего не делает, потому что нет пробелов! !! –

+0

спасибо - теперь я вижу, что код ничего не делает. мои извинения ... похоже, что это функция, которая создает «060926404345061418284348021622343942», что является проблемой –

ответ

2

Этот код не имеет никакого смысла.

Regex.Replace("060926404345061418284348021622343942", "(.{1,2})", "$1") 

is no-op - каждая группа из двух символов (или последнего одиночного символа) заменяется сама собой. То же самое относится к следующему регулярному выражению.

Следующий .split(" ") также не является оператором, потому что нет никаких разделов.

Что вы пытаетесь достичь?

Смежные вопросы