gpt4 book ai didi

c# - 如何删除 MatchCollection 中的重复匹配项

转载 作者:可可西里 更新时间:2023-11-01 08:41:35 27 4
gpt4 key购买 nike

在我的 MatchCollection 中,我得到了相同事物的匹配项。像这样:

string text = @"match match match";
Regex R = new Regex("match");
MatchCollection M = R.Matches(text);

如何删除重复的匹配项,这是最快的方法吗?

这里假设“重复”意味着匹配包含完全相同的字符串。

最佳答案

林克

如果您使用的是 .Net 3.5 或更高版本(例如 4.7),可以使用 linq 删除匹配项的重复项。

string data = "abc match match abc";

Console.WriteLine(string.Join(", ",

Regex.Matches(data, @"([^\s]+)")
.OfType<Match>()
.Select (m => m.Groups[0].Value)
.Distinct()

));

// Outputs abc, match

.Net 2 或无 Linq

将它放入一个 hastable 中然后提取字符串:

string data = "abc match match abc";

MatchCollection mc = Regex.Matches(data, @"[^\s]+");

Hashtable hash = new Hashtable();

foreach (Match mt in mc)
{
string foundMatch = mt.ToString();
if (hash.Contains(foundMatch) == false)
hash.Add(foundMatch, string.Empty);

}

// Outputs abc and match.
foreach (DictionaryEntry element in hash)
Console.WriteLine (element.Key);

关于c# - 如何删除 MatchCollection 中的重复匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com