Разделение с помощью Regex.Match - PullRequest
0 голосов
/ 03 октября 2010

У меня есть строка типа «Цвета: желтый, зеленый, белый».Мне нужно получить массив («желтый», «зеленый», «белый») из него, и это должно быть сделано с одним регулярным выражением.

Я пытаюсь применить что-то вроде

var result = Regex.Match("Colors: green, white, yellow", @":(\s(?<result>.*?)(,|$))*");

что я получаю, это result.Groups ["result"] == "yellow"

Как мне получить все остальные цвета?Может быть, есть другой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 03 октября 2010

Этот фрагмент даст вам массив цветов из вашего result объекта Match.

string[] colours = result.Groups["result"].Captures
    .Cast<Capture>()
    .Select(c => c.Value)
    .ToArray();
1 голос
/ 03 октября 2010

Попробуйте result.Groups ["result"]. Captures

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...