Странно, метод regex.split соответствует одному нулевому элементу - PullRequest
4 голосов
/ 27 апреля 2010
    Regex rx = new Regex(@"[+-]");
    string[] substrings = rx.Split(expression);

expression = "-9a3dcbh-3bca-4ab4cf-3hc" // Это строка iput Я хочу разбить эту строку между + или -. Мой VS отладчик показывает массив подстрок вот так: подстроки [0] = ноль // ??? подстроки [1] = 9a3dcbh подстроки [2] = 3bca подстроки [3] = 4ab4cf подстроки [4] = 3 ч

Почему первый элемент arry null, потому что я сопоставляю + -, а в моей входной строке нет +?

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

Поскольку split удаляет разделитель и возвращает строку до и после разделителей, в этом случае перед разделителем нет символов, поэтому первое значение - пустая строка.

0 голосов
/ 27 апреля 2010

C # Regex.Split - Subpattern возвращает пустые строки . Первый ответ имеет отличное объяснение

Вы можете попробовать это:

     string split_string = "-3243+324-32-2343";
     string[] nums = split_string.Split(new char[] { '-', '+' },
                                        StringSplitOptions.RemoveEmptyEntries);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...