仅当下一个字符为小写时才将字符串拆分为大写

sto*_*oic 4 c# string split

我找到了很多关于如何将字符串拆分为大写的示例,例如:

"MyNameIsRob" 回报 "My Name Is Rob"

我的情景有点不同......

我想完成以下内容:

"MyFavouriteChocIsDARKChocalate" 应该回来 "My Favourite Choc Is DARK Chocalate"

我能想到这样做的唯一方法是,如果下一个字符是小写的话,只将字符串拆分为upperacase.

有关如何实现这一点的任何想法?

Ant*_*Chu 5

您可以使用lookahead和lookbehind进行正则表达式替换,以便在它之前或之后用小写字母查找大写字母...

var input = "MyFavouriteChocIsDARKChocalate";
var output = Regex.Replace(input, "(((?<!^)[A-Z](?=[a-z]))|((?<=[a-z])[A-Z]))", " $1");
Console.WriteLine(output);
Run Code Online (Sandbox Code Playgroud)

http://dotnetfiddle.net/cIM6QG