正则表达式 - 这可能吗?

Ica*_*rus 1 .net c# regex

而不是描述我想要的东西(很难解释),让我提供一个示例,说明我需要使用正则表达式在C#中完成的任务:

"HelloWorld" should be transformed to "Hello World" 
"HelloWORld" should be transformed to "Hello WO Rld" //Two consecutive letters in capital should be treatead as one word
"helloworld" should be transformed to "helloworld"
Run Code Online (Sandbox Code Playgroud)

编辑:

"HellOWORLd" should be transformed to "Hell OW OR Ld"
Run Code Online (Sandbox Code Playgroud)

每两个连续的大写字母应被视为一个单词.

这可能吗?

seh*_*ehe 7

这是完全有效的C#代码,而不仅仅是正则表达式:

Console.WriteLine(
    Regex.Replace(
        "HelloWORld", 
        "(?<!^)(?<wordstart>[A-Z]{1,2})", 
        " ${wordstart}", RegexOptions.Compiled));
Run Code Online (Sandbox Code Playgroud)

它打印:

Hello WO Rld
Run Code Online (Sandbox Code Playgroud)

更新

为了使其更符合UNICODE /国际,请考虑替换[A-Z]\p{Lt}(意味着UNICODE代码点代表大写字母).当前输入的结果是相同的.所以这是一个更引人注目的例子:

Console.WriteLine(Regex.Replace(
            @"ÉclaireürfØÑJßå",
            @"(?<!^)(?<wordstart>\p{Lu}{1,2})", 
            @" ${wordstart}",
            RegexOptions.Compiled));
Run Code Online (Sandbox Code Playgroud)