如何使用C#中的REGEX捕获的命名组提取值?

时间:2016-12-01 16:00:52

标签: c# .net regex

我有以下输入:

.....a whole bunch of stuff before....
The Key(s): FOO-1234, FOO-125, FOO-859
The Key(s): FOO-5364
.....a whole bunch of stuff after....

我需要能够捕获所有这4个键,例如 FOO-1234 FOO-125 FOO-859 FOO-5364

目前我正在使用模式:

var regex = new Regex(@"The Key\(s\): ((?<key>FOO-\d+)(, )?)+");
regex.Match(input).Dump();

我想获得匹配的所有键的值,但即使上面的内容与输入匹配,但Group的{​​{1}}属性似乎没有正确捕获键。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,事实证明我必须查看Caputures而不是Groups

foreach (Match match in regex.Matches(input))
{
    match.Groups["key"].Captures.Dump();
}