2010-10-03 155 views
0

我有一个像“颜色:黄色,绿色,白色”的字符串。 我需要从它得到一个数组(“黄色”,“绿色”,“白色”),它需要用一个正则表达式来完成。与正则表达式分割。匹配

我想申请喜欢

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

的东西是什么,我得到的是result.Groups [“结果”] ==“黄色”

我怎样才能得到所有其他颜色?可能有另一种方法来做到这一点?

+0

是否必须使用正则表达式?无论如何,你可以通过使用split函数轻松获得一个数组。 – 2010-10-03 17:11:04

+0

是的,对于不同的源字符串会有很多正则表达式,所以它必须在一个步骤中完成(即不是先删除“颜色:”部分,然后用逗号分割) – Shaddix 2010-10-03 17:14:08

回答

1

尝试result.Groups [“结果”。捕捉

+0

!谢谢 – Shaddix 2010-10-03 17:14:43

2

这个片段将让你的颜色数组从result Match对象。

string[] colours = result.Groups["result"].Captures 
    .Cast<Capture>() 
    .Select(c => c.Value) 
    .ToArray();