C# 正则表达式匹配太多

C# Regex is matching too much

我的正则表达式应该像这样工作:https://regex101.com/r/dY9jI4/1
它应该只匹配昵称 (personaname).

我的 C# 代码如下所示:

string pattern = @"personaname"":\s+""([^""]+)""";
string users = webClient.DownloadString("http://pastebin.com/raw/cDHTXXD3");
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(users);
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

但是在 VS15 中我的正则表达式匹配我的整个模式,所以控制台输出看起来像:

personaname": "Tom"
personaname": "Emily"

我的模式有问题吗?我该如何解决?

因此,虽然实际的答案是解析此 JSON 并获取数据,但您的问题出在 Match 中,您需要 match.Groups[1].Value 才能获取未命名的组。

string pattern = @"personaname"":\s+""(?<name>[^""]+)""";
string users = webClient.DownloadString("http://pastebin.com/raw/cDHTXXD3");
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(users);
foreach (Match match in matches)
{
    Console.WriteLine(match.Groups["name"].Value);
}