如何通过多个分隔符拆分字符串并保留分隔符?

我有这个字符串"abc({"
现在,我想用"("分隔符拆分它,我知道我可以使用String.split。
但是有没有办法可以通过这个符号拆分而不是丢失它? 就像我使用分裂我会得到这个string[] = { "abc" , "{" }我想要{ "abc" , "(" , "{" }
有没有办法用多个分隔符来做到这一点?

使用带有捕获组的模式的Regex.Split

如果在Regex.Split表达式中使用捕获括号,则任何捕获的文本都包含在结果字符串数组中。

看C#演示 :

 var s = "abc({"; var results = Regex.Split(s, @"(\()") .Where(m=>!string.IsNullOrEmpty(m)) .ToList(); Console.WriteLine(string.Join(", ", results)); // => abc, (, { 

(\()正则表达式匹配并捕获(符号到捕获组1,因此捕获的部分也在结果字符串列表中输出。