using System.Text.RegularExpressions;
public static void Main()
var s = "jüri-péter o'käärkäsi éter";
var regex = new Regex(@"[\p{Z}\p{P}]+");
regex.Split(s).ToList().ForEach(w => s = s.Replace(w, w.ToFirstCap()));
Console.WriteLine(Environment.NewLine + s);
public static class StringExtensions
public static string ToFirstCap(this string s)
if (string.IsNullOrEmpty(s))
return char.ToUpper(s[0]) + s.Substring(1).ToLower();