online - regex matches c#
Divida una cadena Pascal-case en un conjunto lógico de palabras (1)
Me gustaría tomar una cadena con encuadernación en pascal como "CountOfWidgets" y convertirla en algo más fácil de usar como "Count of Widgets" en C #. Múltiples caracteres adyacentes en mayúscula deben dejarse intactos. ¿Cuál es la forma más eficiente de hacer esto?
NOTA : Duplicate of .NET - ¿Cómo se puede dividir una cadena delimitada de "mayúsculas" en una matriz?
No sé sobre eficiente pero al menos es escueto:
Regex r = new Regex("([A-Z]+[a-z]+)");
string result = r.Replace("CountOfWidgets", m => (m.Value.Length > 3 ? m.Value : m.Value.ToLower()) + " ");