C#中的正则表达式只返回第一个匹配项

时间:2014-11-21 00:25:42

标签: regex

我试图简单地使用下面的Regex反汇编逗号分隔的字符串:

[^,]+

但是,我在C#中使用此正则表达式获得的结果与其他引擎(如在线正则表达式编译器)不同。

C#由于某种原因只检测字符串中的第一个元素而且全部都是。

Sample comma-separated string compiled online.

我在C#中使用的代码返回:Foo

        var longString = "Foo, \nBar, \nBaz, \nQux"
        var match = Regex.Match(longString, @"[^,]+");
        var cutStrings = new List<string>();
        if (match.Success)
        {
            foreach (var capture in match.Captures)
            {
                cutStrings.Add(capture.ToString());
            }
        }

1 个答案:

答案 0 :(得分:5)

Regex.Match返回第一场比赛。请尝试Regex.Matches为您提供结果集合。