使用String.Split后保留分隔符

Bal*_*ria 3 c# split

我想使用多个分隔符分割字符串,如下所示:

"aa*ab+ac/ad-ae=af;ag".Split(new string[] { ";", "*", "+", "/", "-" })
Run Code Online (Sandbox Code Playgroud)

回来

{ "aa", "ab", "ac", "ad", "ae", "af", "ag" }
Run Code Online (Sandbox Code Playgroud)

但是,如果我希望将分隔符保留在最终数组中,例如

{ "aa", "*", "ab", "+", "ac", "/", "ad", "-", "ae", "=", "af", ";", "ag" }
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?

EZI*_*EZI 6

你可以使用Regex

var input = "aa*ab+ac/ad-ae=af;ag";
var parts = Regex.Matches(input, @"[;\*\+/=-]|[^;\*\+/=-]+")
                .Cast<Match>()
                .Select(m => m.Value)
                .ToList();
Run Code Online (Sandbox Code Playgroud)