static void Main(string[] args) { var s = "aaa bbb aaa ccc ddd,eee,edc"; foreach (string m in (new Regex(@"\b\W+\b")).Split(s).ToArray().Distinct().OrderBy(i=>i)) { Console.WriteLine("{0}: {1}", m, (new Regex(@"\b" + m + @"\b")).Matches(s).Count); } Console.Read(); }