2011-08-09 4 views

ответ

10
var result = Regex.Replace("MyUnsolvedProblem", @"(\p{Lu})", " $1").TrimStart(); 

Без регулярных выражений:

var s = "MyUnsolvedProblem"; 
var result = string.Concat(s.Select(c => char.IsUpper(c) ? " " + c.ToString() : c.ToString())) 
    .TrimStart(); 
5
resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2"); 
1

я могу предложить предложение о том, как сделать это в C#, если это помогает:

String PreString = "getAllItemsByID"; 

System.Text.StringBuilder SB = new System.Text.StringBuilder(); 

foreach (Char C in PreString) 
{ 
    if (Char.IsUpper(C)) 
     SB.Append(' '); 
    SB.Append(C); 
} 

Response.Write(SB.ToString()); 

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

1

LINQ подход, основанный:

string data = "TestStringData"; 
var converted = data.Select(x => Char.IsUpper(x) ? String.Concat(" ", x) : x.ToString()); 
var singleString = converted.Aggregate((a, b) => a + b); 
Смежные вопросы