出现了一个与 earlier question of mine 有关的新问题.我有一些使用正则表达式查找电子邮件地址的代码。它工作得很好,除了它返回重复的匹配项。我搜索了这个站点,发现很久以前的一个问题正在处理类似的问题,答案与将正则表达式逻辑与 string[] 和 Distinct() 方法混合有关。不幸的是,我对数组的理解仍然有限。
我的代码将所有正则表达式匹配放入 MatchCollection
。除此之外,我如何与此 MatchCollection
交互以仅向正则表达式添加唯一匹配项?
最佳答案
您可以使用 Distinct
来做到这一点在 .NET 3.5 或更高版本中,如果您调用 Cast
在您的匹配集合上,以便您可以使用 LINQ 扩展方法:
MatchCollection matchCollection = Regex.Matches(input, pattern);
List<string> matches = matchCollection
.Cast<Match>()
.Select(m => m.Value)
.Distinct()
.ToList();
这假设您在文件顶部有以下用法:
using System.Linq;
using System.Collections.Generic;
关于c# - 在 C# 中过滤正则表达式搜索以查找重复匹配项的首选方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436093/