Один из возможных способов найти число вхождений слова в тексте - подсчет успешных результатов, возвращаемых Regex.Matches .
Предположим, у вас есть текстовый файл и слово для поиска внутри этого текста:
(в конце концов следует символ вроде .,:)$
и т. д.)
string text = new StreamReader(@"[SomePath]").ReadToEnd();
string word = "[SomeWord]" + @"(?:$|\W)";
Это вернет количество совпадений:
int WordCount = Regex.Matches(text, word).Cast<Match>().Count();
Это даст вам позиции указателей внутри текста, где находятся эти слова:
List<int> IndexList = Regex.Matches(text, word).Cast<Match>().Select(s => s.Index).ToList();
Чтобы выполнить поиск без учета регистра, включите RegexOptions.IgnoreCase
.
Regex.Matches(text, word, RegexOptions.IgnoreCase)
Уточните шаблон поиска, если этого (несколько общего) недостаточно для получения желаемых результатов.
Вы можете проверить результаты, создав список матчей, с помощью:
List<string> ListOfWords = Regex.Matches(text, word, RegexOptions.IgnoreCase)
.Cast<Match>()
.Select(s => s.Value)
.ToList();