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

时间:2017-01-06 16:43:28

标签: c# string split

我以此字符串 "abc({" 为例 现在,我想用 "(" 分隔符拆分它,我知道我可以使用String.split。
但有没有办法,如果通过这个符号而不是损失它可以分裂?就像我使用拆分我会得到这个 string[] = { "abc" , "{" } ,我想 { "abc" , "(" , "{" }
 还有一种方法可以使用多个分隔符吗?

1 个答案:

答案 0 :(得分:2)

Regex.Split与包含捕获组的模式一起使用。

  

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

请参阅C# demo

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

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