代码之家  ›  专栏  ›  技术社区  ›  Shaddix

用regex.match拆分

  •  0
  • Shaddix  · 技术社区  · 14 年前

    我有一根像“颜色:黄色,绿色,白色”的线。 我需要从中得到一个数组(“黄色”、“绿色”、“白色”),它需要用一个regex来完成。

    我正在尝试应用

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

    我得到的是 result.groups[“result”]=“黄色”

    我怎样才能得到所有其他颜色?可能还有别的办法吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   SiberianGuy    14 年前

    尝试result.groups[“result”]。捕获

        2
  •  2
  •   Daniel Chambers    14 年前

    这段代码将从您的 result 匹配对象。

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