gpt4 book ai didi

需要 C# 字边界正则表达式而不是 .Contains()

转载 作者:行者123 更新时间:2023-12-03 19:15:57 24 4
gpt4 key购买 nike

我有一个 list :

var myList = new List<string> { "red", "blue", "green" };

我有一个字符串:

var myString = "Alfred has a red and blue tie";

我正在尝试获取 myStringmyList 中单词匹配的计数。目前,我正在使用 .Contains(),它得到的计数为 3,因为它拾取了“Alfred”中的“红色”。我需要能够孤立言语。如何实现这一目标?

var count = myList.Where(ml => myString.Contains(ml)); // gets 3, want 2

最佳答案

        var myList = new List<string> { "red", "blue", "green" };
Regex r = new Regex("\\b(" + string.Join("|", myList.ToArray()) + ")\\b");
MatchCollection m = r.Matches("Alfred has a red and blue tie");

m.Count 将为您提供发现红色、蓝色或绿色的次数。\b 指定字边界。

m 的每个元素都是匹配类型,您可以查看每个索引以获取更多信息(即 m[0].Value 为您提供匹配的字符串(红色),m[0].Index 为您提供位置在原始字符串 (13)) 中。

关于需要 C# 字边界正则表达式而不是 .Contains(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981382/

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