using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Globalization;
public class Test
{
public static void Main()
{
var strings = new List<string> { "Van Den Broek", "Derksen-van 't schip", "In Het Lid-Van De Boer"};
var textInfo = new CultureInfo("en-US", false).TextInfo;
var pattern = new Regex(@"\b(Van|Den|Der|In|de|het)\b(?:\s+(\w+))?", RegexOptions.Compiled|RegexOptions.IgnoreCase);
foreach (var s in strings)
Console.WriteLine(pattern.Replace(s, m => textInfo.ToTitleCase(m.Groups[1].Value) +
(m.Groups[2].Success ? $" {m.Groups[2].Value.ToLower()}" : "")));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKdXNpbmcgU3lzdGVtLkdsb2JhbGl6YXRpb247CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIHN0cmluZ3MgPSBuZXcgTGlzdDxzdHJpbmc+IHsgIlZhbiBEZW4gQnJvZWsiLCAiRGVya3Nlbi12YW4gJ3Qgc2NoaXAiLCAiSW4gSGV0IExpZC1WYW4gRGUgQm9lciJ9OwoJCXZhciB0ZXh0SW5mbyA9IG5ldyBDdWx0dXJlSW5mbygiZW4tVVMiLCBmYWxzZSkuVGV4dEluZm87CiAgICAJdmFyIHBhdHRlcm4gPSBuZXcgUmVnZXgoQCJcYihWYW58RGVufERlcnxJbnxkZXxoZXQpXGIoPzpccysoXHcrKSk/IiwgUmVnZXhPcHRpb25zLkNvbXBpbGVkfFJlZ2V4T3B0aW9ucy5JZ25vcmVDYXNlKTsKICAgICAgICBmb3JlYWNoICh2YXIgcyBpbiBzdHJpbmdzKQogICAgICAgIAlDb25zb2xlLldyaXRlTGluZShwYXR0ZXJuLlJlcGxhY2UocywgbSA9PiB0ZXh0SW5mby5Ub1RpdGxlQ2FzZShtLkdyb3Vwc1sxXS5WYWx1ZSkgKyAKICAgICAgICAJICAgKG0uR3JvdXBzWzJdLlN1Y2Nlc3MgPyAkIiB7bS5Hcm91cHNbMl0uVmFsdWUuVG9Mb3dlcigpfSIgOiAiIikpKTsKCX0KfQ==