Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串拆分为多个分隔符并保留分隔符?_C#_String_Split - Fatal编程技术网

C# 如何将字符串拆分为多个分隔符并保留分隔符?

C# 如何将字符串拆分为多个分隔符并保留分隔符?,c#,string,split,C#,String,Split,例如,我有一个字符串abc({“ 现在,我想用分隔符(“分隔符)将其拆分,我知道我可以使用String.split进行拆分。 但是,有没有一种方法可以通过这个符号来拆分,但不会丢失它?就像我使用拆分一样,我会得到这个字符串[]={abc',“{”},我想要{abc',“(,“{”} 还有一种使用多个分隔符的方法吗?与包含捕获组的模式一起使用 如果在Regex.Split表达式中使用捕获括号,则所有捕获的文本都将包含在结果字符串数组中 见: (\()正则表达式将(符号匹配并捕获到捕获组1中,因此捕

例如,我有一个字符串abc({“
现在,我想用
分隔符(“
分隔符)将其拆分,我知道我可以使用String.split进行拆分。
但是,有没有一种方法可以通过这个符号来拆分,但不会丢失它?就像我使用拆分一样,我会得到这个
字符串[]={abc',“{”}
,我想要
{abc',“(,“{”}

还有一种使用多个分隔符的方法吗?

与包含捕获组的模式一起使用

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

见:


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

如果您有以下内容,该怎么办:
abc(({
)并且您按
)分割,结果中需要什么?我总是希望保留分隔符,
{abc,(,(,,(,,,,,,{}
使用
var results=System.Text.RegularExpressions.Regex.Split(s,@“(\()”);其中(m=>!string.IsNullOrEmpty(m));
对于多个分隔符,只需将它们添加到Regex中。要使用
{
)进行拆分,请使用
@([({])”
Regex。要使用
进行拆分,请使用
>)|[{(]”
var s = "abc({";
var results = Regex.Split(s, @"(\()")
    .Where(m=>!string.IsNullOrEmpty(m))
    .ToList();
Console.WriteLine(string.Join(", ", results));
// => abc, (, {