C# 如何在没有空格的情况下拆分字符串?

C# 如何在没有空格的情况下拆分字符串?,c#,string,split,character,C#,String,Split,Character,我有一个关于C#的简单问题,基本上我想根据大写字符将一个字符串(没有空格)拆分成单词 假设我有一个字符串“MenInBlack”,我想把它分成“Men”、“In”和“Black” 我尝试过Regex.Split,但不是根据我的目标,代码示例如下: string[] word = Regex.Split(a, @"[A-Z]",RegexOptions.Compiled); 似乎Split方法将排除Split条件,我只得到“en”、“n”和“lack” 你知道如何解决上述问题吗 高级版谢谢。不要

我有一个关于C#的简单问题,基本上我想根据大写字符将一个字符串(没有空格)拆分成单词

假设我有一个字符串“MenInBlack”,我想把它分成“Men”、“In”和“Black”

我尝试过
Regex.Split
,但不是根据我的目标,代码示例如下:

string[] word = Regex.Split(a, @"[A-Z]",RegexOptions.Compiled);
似乎Split方法将排除Split条件,我只得到“en”、“n”和“lack”

你知道如何解决上述问题吗


高级版谢谢。

不要拆分,搜索。拆分意味着您有一个分隔符,即不是令牌一部分的东西将令牌彼此分开

只需搜索
[A-Z][A-Z]+

var regex = new Regex(@"([A-Z][a-z]*)");
var matches = regex.Matches(searchString);

不要分裂,搜索。拆分意味着您有一个分隔符,即不是令牌一部分的东西将令牌彼此分开

只需搜索
[A-Z][A-Z]+

var regex = new Regex(@"([A-Z][a-z]*)");
var matches = regex.Matches(searchString);

我认为使用“前瞻”可以实现拆分。但“前瞻”会降低您的性能。老实说,我不确定OP在语义上是在进行搜索还是拆分。也许条条大路通罗马吧?就表演部分达成一致。但如果偶尔发生一次,就不会引起问题+1回答。只是一个小的吹毛求疵。这不应该是:“([A-Z][A-Z]*)”吗?@IlianPinzon确实如此。它最初是
+
,我将其更改为允许使用单字符标记
,而不是
*
。我想这意味着我应该(凌晨3点)上床睡觉。谢谢。我认为使用“向前看”可以进行拆分。不过,“向前看”会降低您的性能。老实说,我不确定OP在语义上是在进行搜索还是拆分。也许条条大路通罗马吧?就表演部分达成一致。但如果偶尔发生一次,就不会引起问题+1回答。只是一个小的吹毛求疵。这不应该是:“([A-Z][A-Z]*)”吗?@IlianPinzon确实如此。它最初是
+
,我将其更改为允许使用单字符标记
,而不是
*
。我想这意味着我应该(凌晨3点)上床睡觉。谢谢