Вот 2 подхода. Обратите внимание, что регулярное выражение должно использовать метасимвол границы \b
, чтобы избежать неправильного сопоставления вхождений в других словах. Решения, опубликованные до сих пор, не делают этого, что неправильно посчитало бы «FFF» в «fooFFFbar» как совпадение.
string text = "Whatever text FFF you can FFF imagine fooFFFbar";
// use word boundary to avoid counting occurrences in the middle of a word
string wordToMatch = "FFF";
string pattern = @"\b" + Regex.Escape(wordToMatch) + @"\b";
int regexCount = Regex.Matches(text, pattern).Count;
Console.WriteLine(regexCount);
// split approach
int count = text.Split(' ').Count(word => word == "FFF");
Console.WriteLine(count);