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

标签 c# string split

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

“MyNameIsRob” 返回 “My Name Is Rob”

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

我想完成以下任务:

“MyFavouriteChocIsDARKChocalate” 应该返回 “My Favorite Choc Is DARK Chocalate”

我能想到的唯一方法是,如果下一个字符是小写字母,则只将字符串拆分为大写字母。

关于如何实现这一点有什么想法吗?

最佳答案

您可以使用前瞻和后视来执行正则表达式替换,以在其前后查找带有小写字母的大写字母...

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

http://dotnetfiddle.net/cIM6QG

关于c# - 仅当下一个字符为小写时才将字符串拆分为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486616/

相关文章:

c# - 运算符 '==' 不能应用于类型 T?

c# - 将字符串转换为日期时间

Javascript Regexp - 替换函数应该决定不替换匹配的字符串,以让其他带括号的子匹配字符串与匹配一起使用

java - 如何在 Java 中使用拆分字符串重建名称?

c# - 如何拆分 Exception.StackTrace 并仅获取最后一行

c# - 使用 Environment.Newline 拆分字符串会在大多数数组项中留下\n?

C# 如何在 textBox 中允许换行和空格

c# - UWP Phantom 编译器错误

string - Python 3 中如何在字节和字符串之间进行转换?

C - 用 getpid() 中的 ID 替换字符串中的 $$?