我正在尝试在字符串中找到一个单词,这意味着
如果abcdef ghijk
是一个字符串,那么子字符串ghijk
应该给我们 1 作为频率。但如果 substring 为cde
0 则应返回。
我希望使用正则表达式可以做到这一点,但我不知道是否可以。或者可能在字符串类中有一个方法。
如果你想要词频,你可以创建词频。像这样的字典:
s.Split().GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count())
然后检查这本词典中的单词。
var s = "abcdef ghijk abcdef";
var d = s.Split().GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count())
// Dictionary<string, int>(2) { { "abcdef", 2 }, { "ghijk", 1 } }
听起来您只想在字符串中找到整个单词。这可以通过使用正则表达式来完成\b
,这意味着“单词边界”。例如:
var input = "abcdef ghijk";
var freq1 = Regex.Matches(input, @"\bghijk\b").Count;
Console.WriteLine(freq1); // 1
var freq2 = Regex.Matches(input, @"\bcde\b").Count;
Console.WriteLine(freq2); // 0
这还将考虑逗号和句点等标点符号。
尝试这个:
int frequency = YourString.Split().Where(a => a == subString).Count();
否则它将给出频率为零。