Разбить строку в Паскале на логический набор слов

Я хотел бы взять строку в паскале, например "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()) + " ");
Другие вопросы по тегам