2013-05-12 1 views
6

Клиент обновил свои системы, и они начали сообщать об ошибках на выходе. По-видимому, разделение строк привело к следующему.Изменено поведение в RegEx.Split после обновления .NET framework

"a-b-c" -> {"a", "b", "c"} 

Теперь, однако, они получают это.

"a-b-c" -> {"a", "-", "b", "-", "c"} 

Я проверил IntelliSense, но насколько я могу сказать, что нет никакой возможности для включения/выключения включения сепараторов. Как можно легко справиться с этим?

Лучшее предложение, которое у меня есть с головы, состоит в том, чтобы разделить с помощью регулярного выражения, а затем, где он использует ссылку с условием соответствия регулярному выражению. Кажется избыточным, хотя ...

Текущая версия - 4.5. Раньше у них было что-то ooold, как 2.0 или что-то в этом роде.

+0

Можете ли вы показать код? –

+0

Regex.Split ("a-b-c", "-"); –

+0

Очень странно. Этот результат можно было бы ожидать для 'Regex.Split (« a-b-c »,« (-) »);', но не для того, что вы разместили. –

ответ

3

Поведение .NET 4.5 верное.

Содержимое групп захвата добавляется к результату разделения. Поэтому Regex.Split("a-b-c", "(-)"); добавит тире к массиву.

Вместо этого использовать Regex.Split("a-b-c", "-");.

+0

О, это правильно, поведение, все в порядке. Это совсем другое, чем раньше. Я просто нашел [эту ссылку] (http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx) (см. Посередине, когда они обсуждают даты). По-видимому, мой клиент запускал ** ooooooooold ** версию .NET раньше. –

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