c# - 在 C# 中过滤正则表达式搜索以查找重复匹配项的首选方法是什么

标签 c# regex duplicates

出现了一个与 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/

相关文章:

c# - Mvvm灯光对话框消息框。如何添加"is",“否”而不是“确定”和“取消”?

javascript - 每次在 GridView 中单击按钮或链接时如何打开不同的新弹出窗口

python - 列表列表中的重复删除

javascript - 循环遍历表并使用 jquery 删除重复项

c# - 确定图像整体亮度

c# - 将 C# 对象转换为 IOpenApiAny

javascript - 如何检查 href 属性并在需要时添加完整的 url 地址?

java - 正则表达式在 for 循环中查找 DAO

regex - Awk/Perl 正则表达式将空格与连字符匹配

java - Android APK : Duplicated resources, 为什么?