从字符串中获取大写字母的索引

时间:2011-08-09 14:18:24

标签: c# .net regex string

  

可能重复:
  An algorithm to "spacify" CamelCased strings

我有一个这样的字符串:MyUnsolvedProblem

我想修改这样的字符串:My Unsolved Problem

我该怎么做?我尝试过使用正则表达式没有运气!

4 个答案:

答案 0 :(得分:12)

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();

答案 1 :(得分:5)

resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2");

答案 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());

我确信有一种方法可以使用正则表达式,但这是一个选项。

答案 3 :(得分: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);