Как разделить текст по заглавным буквам?

Кузнец

Client
Регистрация
20.12.2016
Сообщения
181
Благодарностей
32
Баллы
28
Собственно текст в исходнике это имена и фамилии и лежат они слитно ИванПетров.
Как поставить пробел перед заглавной буквой?
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
1. Преобразовать строку в массив букв: char[] arr = str.ToCharArray(0, str.Length);
2. В цикле проверять: char.IsUpper(arr[i]);
3. Соединять буквы обратно в строку, если верхний регистр, то добавить пробел: result += " " + arr[i].ToString();
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 802
Благодарностей
1 474
Баллы
113
Собственно текст в исходнике это имена и фамилии и лежат они слитно ИванПетров.
Как поставить пробел перед заглавной буквой?




C#:
string Text = "ИванПетров";
project.Variables["Result"].Value = Regex.Replace(Text, @"([a-zа-яё])([A-ZА-ЯЁ])","$1 $2");
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 179
Баллы
113
Собственно текст в исходнике это имена и фамилии и лежат они слитно ИванПетров.
Как поставить пробел перед заглавной буквой?
Регулярка из предыдущего сообщения, но через стандартный кубик:

91745


91746
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
296
Благодарностей
116
Баллы
43
Собственно текст в исходнике это имена и фамилии и лежат они слитно ИванПетров.
Как поставить пробел перед заглавной буквой?
Можно вот так.
C#:
string input = project.Variables["input"].Value;
string[] arr = Regex.Split(input, "(?=\\p{Lu})");
return project.Variables["result"].Value = arr[1]+" "+arr[2];
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)