将字符串拆分为组件

Esm*_*ael -1 c# regex string split

我尝试将以下字符串拆分为3个部分:

Esmael20170101one => Esmael 20170101 one
Run Code Online (Sandbox Code Playgroud)

有什么选择?

Dmi*_*nko 6

我建议匹配而不是拆分:

  string source = "Esmael20170101one";

  var match = Regex.Match(source, 
    @"^(?<name>[A-Za-z]+)(?<code>[0-9]+)(?<suffix>[A-Za-z]{3})$");

  string name = match.Groups["name"].Value;
  string code = match.Groups["code"].Value;
  string suffix = match.Groups["suffix"].Value;
Run Code Online (Sandbox Code Playgroud)

如果你坚持Regex.Split:

  string[] items = Regex.Split(source, "([0-9]+)");

  string name = items[0];
  string code = items[1];
  string suffix = items[2]; 
Run Code Online (Sandbox Code Playgroud)