C#Regex匹配太多了

时间:2016-09-24 21:57:13

标签: c# regex multiple-matches

我的正则表达式应该是这样的: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"

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

1 个答案:

答案 0 :(得分:1)

因此,虽然实际答案只是解析此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);
}