RegEx错误结果

时间:2014-04-29 13:56:54

标签: c# regex

 string input = customSearchResult;
 string pattern = @"(?<=link)";
 MatchCollection linkMatches = Regex.Matches(input, pattern);

 foreach (Match match in linkMatches) { 
    return ResultOutcome += linkMatches.ToString();
 }
 return ResultOutcome += "Fail";

我有这个代码光圈。 我想显示我的json输出中的链接。但我的输出总是:

System.Text.RegularExpressions.MatchCollection

我做错了什么? 先感谢您。 问候,瓦莱里亚。

1 个答案:

答案 0 :(得分:1)

您的代码存在两个问题:

  • 您的foreach循环返回第一个匹配,跳过其余匹配,
  • 您的foreach循环调用ToString对象上的MatchCollection

您可以在没有循环的情况下连接匹配项,如下所示:

if (linkMatches.Count != 0) {
    return ResultOutcome + string.Join("", linkMatches);
} else {
    return ResultOutcome + "Fail";
}

当然,您还需要修复正则表达式,以便在后视锚之后至少匹配某些内容