Разделить строку PascalCase, кроме аббревиатур.

У меня есть список слов, которые нужно сделать удобочитаемыми, например, от имени к имени, от фамилии к фамилии, а в некоторых случаях аббревиатуры вроде ARB оставить как есть. Последний был недавно представлен и вызвал проблему с отображением, поскольку наше регулярное выражение возвращает AR Bs . Вот что у нас есть, и я знаю, что этого недостаточно для сокращений:

([A-Z][a-z]+)

Я нашел другие выражения на SO и на других сайтах, которые могут работать с сокращениями, однако они работают со строками, в которых аббревиатура находится внутри строки, а не являясь всей строкой. Я могу использовать простые регулярные выражения, но это слишком сложно для моих навыков. Я бы привел другие примеры для тестирования, если бы они у меня были, но все строки работают нормально, кроме новой, ARB. Спасибо.

Обновление: вот пример использования кода

string friendlyName = Regex.Replace(field.Name, "([A-Z][a-z]+)", " $1", RegexOptions.Compiled).Trim();
7
задан Mathachew 30 June 2012 в 02:34
поделиться