Разбить строку в Паскале на логический набор слов
Я хотел бы взять строку в паскале, например "CountOfWidgets", и преобразовать ее в нечто более удобное для пользователя, например "Count of Widgets" в C#. Несколько смежных заглавных букв должны быть оставлены без изменений. Какой самый эффективный способ сделать это?
ПРИМЕЧАНИЕ. Дубликат .NET. Как разделить строку с заглавными буквами на массив?
1 ответ
Решение
Не знаю, насколько эффективно, но, по крайней мере, это кратко:
Regex r = new Regex("([A-Z]+[a-z]+)");
string result = r.Replace("CountOfWidgets", m => (m.Value.Length > 3 ? m.Value : m.Value.ToLower()) + " ");