RegEx错误结果

本文关键字:结果 错误 RegEx | 更新日期: 2023-09-27 18:00:39

 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

我做错了什么?提前谢谢。你好,瓦莱丽娅。

RegEx错误结果

您的代码有两个问题:

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

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

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

当然,您还需要修复正则表达式,以便它至少与look-behind锚点后的内容相匹配。