C# - 用下划线和字母替换每个UpperCase字母

Bud*_*Joe 16 .net c# regex string

如何用下划线和C#中的字母替换每个UpperCase字母?注意:除非该字符已经由下划线继续.

更新: 例如,MikeJones
将变成
Mike_Jones

但Mike_Jones
不会变成
Mike__Jones

Regex是最好的方法吗?我从哪里开始这个?

Jak*_*ake 30

正则表达式听起来最好:

string input = "Test_StringForYou";
string replaced = Regex.Replace(input, @"(?<!_)([A-Z])", "_$1");
Console.WriteLine(replaced);
Run Code Online (Sandbox Code Playgroud)

输出:_Test_String_For_You

一定要添加一个 using System.Text.RegularExpressions;

  • @tyndall:`(?<!_ | ^)([AZ])`或者`(?<= [az])([AZ])`应该这样做. (4认同)